Commit graph

2087 commits

Author SHA1 Message Date
Martin Gräßlin
b734c03346 Merge branch 'KDE/4.9' 2012-07-22 10:07:40 +02:00
Martin Gräßlin
fb65e080dc Pass property minimized from Client to Deleted
Ensures that we can access the minimized property in Effects
which want to not animate a closed, minimized window.

Make use of it in the Fade Effect Script to not fade out a
minimized window which would mean showing the actual not
visible window.

BUG: 303891
FIXED-IN: 4.9.0
REVIEW: 105647
2012-07-22 10:06:30 +02:00
Martin Gräßlin
c7262e8bd3 Getter/setters for opacity, saturation and brightness in WindowPaintData
The public member variables for opacity, saturation and brightness
are removed in favor for getter and setters. The variables are
moved into a private class. Those are now qreal instead of double.

To make usage inside the effects easier a multiply method is added
which multiplies the current value with passed in factor and returns
the new value in a functional programming style.

This commit is the top-most of a patch series to refactor
ScreenPaintData and WindowPaintData. Other related commits are:
* 0811772
* ebdc7ec
* 2c8dd8d
* 7699726
* 68e0201
* 611cb09

REVIEW: 105141
BUG: 303314
FIXED-IN: 4.10
2012-07-19 18:25:48 +02:00
Martin Gräßlin
f723f132ca Drop support for explicit contents opacity from WindowPaintData
No effect has ever made use of contents opacity. Which means it
is not needed. Removing means faster effects as we used to
multiply the value (always 1.0) with the opacity in each frame
for each window.
2012-07-19 18:25:03 +02:00
Martin Gräßlin
dd067b075b Split out common part of ScreenPaintData and WindowPaintData
New common d-pointered class PaintData is added which cannot
be instantiated.
2012-07-19 18:25:03 +02:00
Martin Gräßlin
a2b0d42916 Replace translation by QVector3D in Screen/Window PaintData 2012-07-19 18:25:03 +02:00
Martin Gräßlin
0eff12eb92 Use QGraphicsScale for scale information in ScreenPaintData 2012-07-19 18:25:03 +02:00
Martin Gräßlin
966047ccd2 Replace custom RotationData with QGraphicsRotation 2012-07-19 18:25:03 +02:00
Martin Gräßlin
3125333f76 Fix logout effect including port to OpenGL 2
The logout effect was rather broken. First of all it was
excluded from build if OpenGL ES is present at build time. The
reason for this is that the effect did not work with GLES.

In order to fix that the vignetting is ported over to OpenGL 2
by using a dedicated shader. As well the lod based blur is
added through a dedicated shader and uses framebuffer blit to
get the current rendered buffer before rendering the logout
window into a texture.

Last but not least the isActive method was broken and is fixed
by checking whether the logout window is around.

BUG: 303096
FIXED-IN: 4.9.0
REVIEW: 105459
2012-07-09 21:02:57 +02:00
Thomas Lübking
34ba9411c9 use proper onCurrentDesktop instead of isOnCurrentDesktop
BUG: 302784
FIXED-IN: 4.9
REVIEW: 105394
2012-07-05 19:43:46 +02:00
Thomas Lübking
9c1b7f823c use window role to detect dashboard
BUG: 302523
FIXED-IN: 4.9
REVIEW: 105382
2012-07-05 19:43:45 +02:00
Thomas Lübking
adce67d1d7 fix startup effect repaints
REVIEW: 105376
2012-07-05 19:43:45 +02:00
Thomas Lübking
3ef69476e7 don't fade/out in windows on other desktops
BUG: 302101
FIXED-IN: 4.9
REVIEW: 105297
2012-06-18 22:12:04 +02:00
Script Kiddy
953d088b6a SVN_SILENT made messages (.desktop file) 2012-06-12 17:07:51 +02:00
Script Kiddy
071fa7053b SVN_SILENT made messages (.desktop file) 2012-06-11 10:15:37 +02:00
Script Kiddy
08a8ecaaa5 SVN_SILENT made messages (.desktop file) 2012-06-04 10:36:37 +02:00
Script Kiddy
62211420c7 SVN_SILENT made messages (.desktop file) 2012-05-28 11:08:19 +02:00
Martin Gräßlin
1de1204ecd Drop KWIN_HAVE_OPENGL defines in effects
OpenGL is nowadays a build dependency which obsoletes the define.

REVIEW: 105023
2012-05-27 16:37:26 +02:00
Martin Gräßlin
d0d274b855 Don't compare uint with int
Explicitly cast uint to int to fix a warning.
2012-05-27 16:35:04 +02:00
Martin Gräßlin
812c310dcf Fix unused variable warnings
SVN_SILENT
2012-05-27 16:35:04 +02:00
Thomas Lübking
57ce41d966 move a variable to correct context
BUG: 297757
FIXED-IN: 4.9
REVIEW: 105058
2012-05-26 13:24:46 +02:00
Martin Gräßlin
f6a0c6907a Fix compilation of screenshot effect without XRender 2012-05-26 10:24:11 +02:00
Martin Gräßlin
aebc322a74 Fix compilation of snaphelper effect without XRender 2012-05-26 09:31:04 +02:00
Martin Gräßlin
b40f27f54c Fix compilation of magnifier effect without XRender 2012-05-26 09:05:05 +02:00
Martin Gräßlin
f24103481e Ensure ScreenTransformation matrix is reset after rendering cube
Cube effect modifies the ScreenTransformation matrix. While each
window resets the matrix on a global level it's not reset. That
means if the last rendered window had the screen rotated the
ScreenTransformation keeps the rotation even after the cube
ended. This causes a rotated window in e.g. TaskbarThumbnails.

REVIEW: 104918
CCBUG: 299869
2012-05-22 18:34:11 +02:00
Martin Gräßlin
1379bbaa83 Use enum based setUniform in cube effect
A little bit more safety when setting a uniform value.

REVIEW: 104923
2012-05-22 18:31:14 +02:00
Martin Gräßlin
d14cf2da92 Show detailed information why an effect cannot be loaded
Effects can specify their minimum requirements in their
desktop file:
* OpenGL
* OpenGL 2 (GLSL required)
* Shaders (either ARB or OpenGL 2)

The configuration module uses this information in combination
with which backend KWin is currently using. So if e.g. OpenGL
is used and an effect requires OpenGL 2 a detailed error
message can be showed that OpenGL 2 is required.

BUG: 209213
FIXED-IN: 4.9.0
REVIEW: 104847
2012-05-15 18:02:57 +02:00
Martin Gräßlin
f3443a6b07 Add CMake variable to rename kwin binaries
A CMake variable is used to specify the name of the binary.
By default this is "kwin" but building for PA changes the
name to "kwinactive". The variable adjusts all names, e.g.
kwinnvidiahack becomes kwinactivenvidiahack.

The remaining usage of kwinrc in core and libs is replaced
by a cmakedefine for the configuration name and all data
installations are moved to the defined name. Dynamic loading
for scripts & co is adjusted for loading based on defined name.

This change allows the side-by-side installation of both kwin
for desktop and kwin for Plasma Desktop without the known
issues like conflicts in config files or missing build options
if kwin desktop is used for Plasma Active.

Likewise the KCMs are not adjusted as they are not intended to
be used for kwinactive.

REVIEW: 104299
BUG: 296084
FIXED-IN: 4.9.0
CCMAIL: active@kde.org
2012-05-10 10:25:15 +02:00
Ghislain MARY
c66c78f1d2 Key Bindings for Switching between Windows of current Application
Additional TabBox Mode which allows to switch between all open
windows of the current selected application. By default Alt+tilde
is used which is on qwerty just one key above tab. For non-qwerty
layouts the shortcut is unfortunately not convenient.

REVIEW: 104730
FEATURE: 299308
FIXED-IN: 4.9.0
2012-05-10 09:53:10 +02:00
Script Kiddy
ee92a35f39 SVN_SILENT made messages (.desktop file) 2012-05-10 09:48:44 +02:00
Martin Gräßlin
8dd05b6cb2 Fix error introduced with 0950f4
CCBUG: 299429
2012-05-06 20:27:47 +02:00
Martin Gräßlin
b3a813ffa7 Exclude minimized and windows not on current desktop from fade desktop
BUG: 299429
FIXED-IN: 4.9.0
2012-05-06 19:51:56 +02:00
Martin Gräßlin
151b8835f5 Resolve ambiguous connect in fade desktop scripted effect
Scripts cannot connect to a generic desktopChanged signal, but
need to explicitly state which one to use.
2012-05-06 19:46:14 +02:00
Martin Gräßlin
a79eacaed7 Properly detect effects which need OpenGL 2
Effects that need GLSL require that OpenGL 2 is active.
It does not matter whether the GPU would support it if
OpenGL 2 is not used.

Cherry-picked from db42152

CCBUG: 299426
2012-05-05 10:27:19 +02:00
Thomas Lübking
766bc27940 tag window being moved before dropping out of QuickTile/Max and omit wobble if window being moved during maximization change
BUG: 222102
REVIEW: 104841
FIXED-IN: 4.9
2012-05-03 18:54:30 +02:00
Thomas Lübking
cd8e84f5f2 activate dragged window if not using present windows in desktop grid
BUG: 254044
REVIEW: 104247
FIXED-IN: 4.9
2012-05-03 17:50:43 +02:00
Thomas Lübking
494ffbdfd4 swap desktops in desktopgrid w/o swapping traversed desktops
BUG: 252699
REVIEW: 104247
FIXED-IN: 4.9
2012-05-03 17:49:43 +02:00
Thomas Lübking
8b175b7044 don't exit desktop grid when clicking into empty space
BUG: 244216
REVIEW: 104247
FIXED-IN: 4.9
2012-05-03 17:48:44 +02:00
Ghislain MARY
8ebba542b0 Save and restore zoom value for desktop zoom and magnifier effects
REVIEW: 104597
BUG: 189956
FIXED-IN: 4.9.0
2012-05-03 16:38:56 +02:00
Martin Gräßlin
9aa30ad976 Cleanup of Desktop Grid: remove unused variables
Remove two unused variables the compiler nagged about
and remove commented code.

REVIEW: 104836
2012-05-03 11:40:07 +02:00
Martin Gräßlin
f2069112c2 Fix crash on closing present windows due to filter frame being null
Crash got introduced with bbf561ef9726e574684b67d53fc3c56cfc4e2e89

Also fixing coding style issue introduced in same commit.
2012-05-03 10:34:09 +02:00
Martin Gräßlin
d05d55b140 Delay creation of EffectFrames till needed
Creating an EffectFrame requires I/O which takes on my system
during testing between 10 and 40 msec. Also it needs a little
bit of memory.

This changes moves out the creation of EffectFrames at Effect
load till the Effect actually needs the EffectFrame. E.g. if a
user does not filter in PresentWindows there is no need to ever
create it.

BoxSwitch effect is ignored as it should be dropped for 4.9.

REVIEW: 104815
2012-05-03 09:10:48 +02:00
Martin Gräßlin
8489ede9aa Move loading of Cube textures into thread
Cube effect loads 0 to 2 textures which has been
performed during configuration. This change delays
loading the textures till cube is activated for the
first time and the loading from file is moved into
a thread.

This means that for a very short time the texture
is not yet visible, but this is not a problem as
the cube animates from fully opaque starting state.
So during the loading the texture would not be
visible anyway.

REVIEW: 104807
2012-05-03 09:07:06 +02:00
Thomas Lübking
c2940d8889 polish track mouse effect, add xrender implementation 2012-05-02 21:56:18 +02:00
Thomas Lübking
c8320b0db7 Avoid continious repaints in Present Windows effect
REVIEW: 104787
2012-04-30 22:37:40 +02:00
Thomas Lübking
b12279b6ed implement mousemark effect for xrender
BUG: 298338
FIXED-IN: 4.8.3
REVIEW: 104674
2012-04-20 23:59:32 +02:00
Philipp Knechtges
93b2674313 kwin: dropping several gl(Push|Pop)(Attrib|Matrix) calls
This makes kwin in OpenGL2 mode more coherent with kwin_gles.
Despite some fullscreen effects they should now make the same
(pure) OpenGL calls.

REVIEW: 103804
2012-04-19 21:01:46 +02:00
Thomas Lübking
ab86f0e837 add screen inversion through XF86VidModeSetGammaRamp or XRRSetCrtcGamma
use opengl invert effect as fallback

REVIEW: 104371
2012-04-17 21:11:03 +02:00
Michael Palimaka
c04fca92f9 Fix KWin build failure when OpenGL is disabled and OpenGLES is enabled.
Some old restructuring caused -DKWIN_HAVE_OPENGLES to no longer be
passed to the compiler, causing OpenGL-specific code to be built
while the libraries to link it were not available.

REVIEW: 104558
2012-04-15 05:12:41 +10:00
Aleix Pol
73c142fe45 Extend the screenshot effect API.
Makes it possible to take a screenshot for a given window ID.

REVIEW: 104388
2012-04-12 13:13:49 +02:00