Commit graph

2156 commits

Author SHA1 Message Date
Martin Gräßlin
12bea5f682 New Maximize Window Effect
Animation for going from restored to maximized and vice versa.

BUG: 308990
FIXED-IN: 4.10
REVIEW: 107050
2012-10-28 09:51:01 +01:00
Script Kiddy
2cb8e724d4 SVN_SILENT made messages (.desktop file) 2012-10-28 09:14:05 +01:00
Dario Cambié
b26108121d Use KConfigXT in CoverSwitch Effect
REVIEW: 106396
2012-10-26 10:18:35 +02:00
Martin Gräßlin
bf8e7c4fc8 Add QProperties to MouseClick Effect
Allows to read out all settings at runtime through supportInformation.
2012-10-26 09:47:22 +02:00
Martin Gräßlin
c3f2b68581 Protect access to EffectFrame if not used
Caused a crash when Show Text was disabled.
2012-10-26 09:47:22 +02:00
Martin Gräßlin
a6ab97172e Use KConfigXT in MouseClick Effect 2012-10-26 09:47:22 +02:00
Filip Wieladek
378a4f8fe4 Mouse Click animation effect
An effect which visualy animates when a mouse button is pressed or
released.

REVIEW: 105780
BUG: 309006
FIXED-IN: 4.10
2012-10-26 09:47:22 +02:00
Martin Gräßlin
2e2aa199bc Save shortcut editor in FlipSwitch Effect Config 2012-10-26 09:46:53 +02:00
Thomas Lübking
6cba742315 Hardcode TabBox setting in boxswitch effect false
Boxswitch is activated as tabbox, possibly due to a downstream issue
This results in multiple effects being assigned to the tabbox and no
GUI way for the user to fix this.
Since the BoxSwitch effects nowadays only exists  as sidearm for
coverswitch, the tabbox setting is now hardcoded and disabled in the
effect, making it completely impossible to accidentally use it as tabbox.

BUG: 303387
REVIEW: 106695
FIXED-IN: 4.9.3
2012-10-25 19:17:26 +02:00
Martin Gräßlin
99db844912 Bind ARBBlurShader to OpenGL1
The logic has already ensured that the ARBBlurShader can only be used
when using the OpenGL1 compositor, the OpenGL 2 compositor needs to use
the GLSLBlurShader.

This change moves the complete ARBBlurShader into a KWIN_HAVE_OPENGL_1
ifdef section.

As a side-effect the ::create method can now return a NULL pointer which
makes more sense then returning an ARBBlurShader in case that the
GLSLShader is not supported.

REVIEW: 106738
2012-10-25 11:34:30 +02:00
Martin Gräßlin
cf5de22586 Introduce a build option KWIN_BUILD_OPENGL_1_COMPOSITING
If the build option is enabled KWIN_HAVE_OPENGL_1 is passed as a compile
flag when build against OpenGL.

This compile flag is meant to replace the KWIN_HAVE_OPENGLES. So far code
has been ifdefed for special behavior of OpenGL ES 2.0 and to remove
fixed functionality calls which are not available in OpenGL ES 2.0.

With this build flag the fixed functionality calls which are only used in
the OpenGL1 Compositor can be removed and keeping the KWIN_HAVE_OPENGLES
for the real differences between OpenGL 2.x and OpenGL ES 2.0.

E.g. a call like glColor4f should be in an
glColor4f(1.0, 1.0, 1.0, 1.0);

while a call like glPolygonMode should be in an
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

Building for OpenGL ES 2.0 of course implies that KWIN_HAVE_OPENGL_1 is
not defined.
2012-10-25 11:34:12 +02:00
Martin Gräßlin
b2922f6675 Remove compile flag KWIN_HAVE_OPENGL
KWIN_HAVE_OPENGL is not used anymore inside KWin, so no need to pass it
as a compile flag to the binaries.
2012-10-25 11:34:12 +02:00
Martin Gräßlin
2b6c4730b5 Re-enable Blur/Lanczos for Catalyst on OpenGL 2
Given that the Catalyst driver is now supporting direct rendering and by
that can use the OpenGL 2 code path we do no longer need to force
disable the Blur effect and Lanczos filters which used to crash in the
ARB shader path.

The ARB shader path - which can only be used in OpenGL 1 - is kept
disabled for Catalyst.

CCBUG: 270818
CCBUG: 286795
REVIEW: 106798
2012-10-25 11:30:18 +02:00
Alexander Jones
bf2507b2fe Fixing author names in desktop files
BUG: 307928
FIXED-IN: 4.10
REVIEW: 106880
2012-10-18 07:29:14 +02:00
Martin Gräßlin
e0570f34da Merge branch 'KDE/4.9'
Conflicts:
	kwin/effects/diminactive/diminactive.cpp
2012-10-14 20:28:36 +02:00
David Weber
58e8bf2f12 Repaint screen after config update in diminactive effect
BUG: 308283
FIXED-IN: 4.9.3
REVIEW: 106814
2012-10-14 20:22:14 +02:00
Script Kiddy
49a5582f24 SVN_SILENT made messages (.desktop file) 2012-10-01 15:50:20 +02:00
Script Kiddy
5cd15e8920 SVN_SILENT made messages (.desktop file) 2012-10-01 10:36:58 +02:00
Thomas Lübking
87bd9958cf fix zoom factor scale, remains double
BUG: 307609
2012-09-30 13:51:42 +02:00
Martin Gräßlin
c2a4f81927 Introduce a helper class to automatically push/pop Shaders
The ShaderBinder class can be used for the case that a block of code
should be executed with a given Shader being bound. This is useful for
all the cases where there is a if-block for OpenGL2 execution with a
Shader being pushed in the first line to the ShaderManager and popped in
the last line of the block. With the helper this can be simplified to:

ShaderBinder binder(myCustomShader);

or

ShaderBinder binder(ShaderManager::GenericShader);

The ctor of ShaderBinder pushes the given Shader to the stack and once
the helper goes out of scope it will be popped again from the stack.

In addition the helper can take care of OpenGL 1 compositing, that is it
just does nothing. So it can also be used where there is a shared OpenGL1
and OpenGL2 code path where the Shader should only be pushed in OpenGL2.
This basically removes all the checks for the compositing type before
pushing/popping a Shader to the stack.

REVIEW: 106521
2012-09-29 15:33:57 +02:00
Martin Gräßlin
f9a2ecbf33 Do not use ShaderManager::isValid to check for OpenGL2 compositing
The main usage of ShaderManager::isValid was to have OpenGL2 specific
code pathes. Now we have an actual OpenGL2Compositing type and we know
that the ShaderManager is valid if we have this compositing type and we
know that it is not valid on OpenGL1Compositing. This gives us a much
better check and allows us to use the isValid method just for where we
want to check whether the shaders compiled successfully.

In addition some effects require OpenGL2, so we do not need to check
again that the ShaderManager is valid. Such usages are removed.
2012-09-29 15:33:57 +02:00
Martin Gräßlin
6d2dfe06e7 Introduce dedicated OpenGL1 and OpenGL2 compositing types
The CompositingType enum turns into flags and two new values are
introduced: OpenGL1Compositing and OpenGL2Compositing.

Those new values are or-ed to OpenGLCompositing so that a simple check
for the flag OpenGLCompositing works in case of one of those two new
values. To make the generic check for OpenGL compositing easier a method
in EffectsHandler is introduced to just check for this.

The scenes now return either OpenGL1Compositing or OpenGL2Compositing
depending on which Scene implementation. None returns OpenGLCompositing.
2012-09-29 15:33:57 +02:00
Thomas Lübking
24cf0e75f3 Merge branch 'KDE/4.9'
Conflicts:
	kwin/scene.cpp
	plasma/generic/applets/batterymonitor/metadata.desktop
	plasma/generic/applets/lock_logout/metadata.desktop
2012-09-19 20:21:18 +02:00
Thomas Lübking
7775510918 fix desktopgrid window manage on VD amount change
BUG: 289747
FIXED-IN: 4.9.2
REVIEW: 106391
2012-09-19 20:16:33 +02:00
Alexander Jones
696ea9f4d3 Use KConfigXT in Magnifier Effect
REVIEW: 106442
2012-09-19 12:05:21 +02:00
Martin Gräßlin
85510b91aa Use KConfigXT in ThumbnailAside effect
Thanks to Andrea Scarpino for providing the patch.

REVIEW: 106436
2012-09-19 10:24:04 +02:00
Martin Gräßlin
bd91fb10d7 Use KConfigXT in WindowGeometry
Thanks to Andrea Scarpino for providing the patch.

REVIEW: 106413
2012-09-19 10:17:17 +02:00
Martin Gräßlin
9ac20a382d Use KConfigXT in MagicLamp effect
Thanks to Andrea Scarpino for providing the patch

REVIEW: 106412
2012-09-19 09:29:27 +02:00
Martin Gräßlin
8ad02b5582 Use KConfigXT in Dashboard Effect
Thanks to Andrea Scarpino for providing the patch.

REVIEW: 106390
2012-09-19 09:21:15 +02:00
Martin Gräßlin
914729324c Use KConfigXT in Login Effect
Thanks to Andrea Scarpino for providing the patch.

REVIEW: 106387
2012-09-19 09:01:59 +02:00
Lilian A. Moraru
66f568342a Use KConfigXT in DesktopGrid effect
REVIEW: 106398
2012-09-15 11:24:11 +02:00
Lilian A. Moraru
99fcab5c36 Use KConfigXT in Blur effect
REVIEW: 106400
2012-09-15 11:24:11 +02:00
Lilian A. Moraru
607817eeef Use KConfigXT in FlipSwitch effect
REVIEW: 106401
2012-09-15 11:24:11 +02:00
Giuseppe Calà
500310b0e8 Use KConfigXT in LookingGlass Effect
REVIEW: 106406
2012-09-15 11:24:11 +02:00
Alexander Jones
f1df9ee2f0 Use KConfigXT in Zoom Effect
REVIEW: 106402
2012-09-14 10:39:28 +02:00
Alexander Jones
f581e22e38 Use KConfigXT in Resize Effect
REVIEW: 106397
2012-09-14 10:39:28 +02:00
Bernhard Friedreich
968d10c14a Use KConfigXT in Wobblywindows effect
REVIEW: 106389
2012-09-14 10:39:28 +02:00
Dario Cambié
581f9b9394 Use KConfigXT in Glide Effect
REVIEW: 106392
2012-09-14 10:39:28 +02:00
Dirk Sarpe
31fa04d653 Use KConfigXT in PresentWindows Effect
REVIEW: 106407
2012-09-14 10:39:28 +02:00
Giuseppe Calà
ab305a1aba Use KConfigXT in MouseMark Effect
REVIEW: 106414
2012-09-14 10:39:28 +02:00
Giuseppe Calà
65bb42a801 Use KConfigXT in ShowFps Effect
REVIEW: 106415
2012-09-14 10:39:27 +02:00
Giuseppe Calà
6ac2014533 Use KConfigXT in TrackMouse Effect
REVIEW: 106416
2012-09-14 10:39:27 +02:00
Salva Ardid
b8630d19ec Use KConfigXT in DimInactive Effect
REVIEW: 106422
2012-09-14 10:39:27 +02:00
Francesco Cecconi
062f5ff66b Use KConfigXT in Cube/CubeSlide effect
REVIEW: 106403
2012-09-14 10:39:27 +02:00
Script Kiddy
1c91a1be97 SVN_SILENT made messages (.desktop file) 2012-09-09 10:29:47 +02:00
Martin Gräßlin
167b550280 Drop supperfluous and wrong inactive check in translucency effect
Left over from the cleanup which basically resulted in the active window
being put to the inactive's window opacity.

Thanks for the early notification of that issue.

BUG: 306449
FIXED-IN: 4.9.2
2012-09-08 19:43:01 +02:00
Martin Gräßlin
3aee94d798 Merge branch 'KDE/4.9'
Conflicts:
	ksysguard/gui/ksysguard.desktop
	kwin/effects/translucency/translucency.cpp
2012-09-07 07:59:10 +02:00
Martin Gräßlin
2cf35aa21a Remove animations from Translucency effect
The effect should have had two animations:
* on move resize
* on active/inactive change

But the timeline was adjusted in the prePaintWindow call and the timeline
is effect global and not per window. Which means that for each window the
same time is added. So instead of adding time t each frame t*n with n
being the number of windows got added. So in most cases the animation
ended in the first or second frame which means its not visible.

Through git blame I was able to track down that this incorrect behavior
was introduced in 2008. An animation broken for more than four years
without anybody noticing is probably not required. Because of that it's
dropped from the effect. As this includes quite some code and performance
improvements it goes into the release branch.

A better solution could be implemented, but that should be for 4.10.

BUG: 306263
FIXED-IN: 4.9.2
REVIEW: 106335
2012-09-07 07:39:50 +02:00
Martin Gräßlin
bf0c69100a Improve the various checks in Translucency Effect
There were quite some useless checks like e.g. first checking whether
a window is the desktop and taking a different code path for that case
and in the other code path checking again.

Also using the new introduced boolean values for the checks instead of
comparing floating point numbers all the time.
2012-09-07 07:39:32 +02:00
Martin Gräßlin
f125dbd3d6 Translucency Effect supports isActive hook
The effect gets a set of boolean values to check whether it is active for
one of the categories (e.g. move resize, decorations).

This allows to easily check whether the effect is active at all, that is
if all values are at 1.0 the effect will never affect a window.

In all other cases it can be combined with looking at the available
windows to e.g. enable the effect for move resize only when there is a
window which is either moved or resized. This check is performed whenever
an action happens which could cause a window to become inactive.

BUG: 306262
FIXED-IN: 4.9.2
2012-09-07 07:39:32 +02:00