Commit graph

9550 commits

Author SHA1 Message Date
Script Kiddy
817de698a0 SVN_SILENT made messages (.desktop file) 2012-07-22 10:49:48 +02:00
Martin Gräßlin
f775229a80 Don't use GL Matrix Stack on OpenGL 2 backend
Currently the GL Matrix Stack is also used with OpenGL 2.
That is pushMatrix, multMatrix and popMatrix are executed
although this does not influence the rendering at all. The
OpenGL 1 matrices are not passed to the shaders.

With this change the calls to the matrix stack are no longer
executed if the Shader based backend is used. This means we
have a few less matrix multiplications in the rendering.

Mostly affects a few effects which have not yet completely be
ported over to OpenGL 2.

BUG: 303093
FIXED-IN: 4.10
REVIEW: 105455
2012-07-22 10:17:12 +02:00
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
Thomas Lübking
35baf3f97a fix conditional glXSwapInterval usage
and cleanup profiling relics

REVIEW: 105632
BUG: 303397
(cherry picked from commit 0babc455aea4f5099a4f829668160bda3ef68a28)
2012-07-21 19:59:46 +02:00
Thomas Lübking
498783c66b move KServiceTypeTrader::query() to main thread
KConfigGroup is not the least thread safe and unfortunately
the KServiceTypeTrader::self()->query() will in doubt create
one if the sycoca database was damaged.

BUG: 303713
REVIEW: 105608
(cherry picked from commit e3edcbcf66b324febcc2014ca4c1fbfa383d8972)
2012-07-21 19:59:36 +02:00
Thomas Lübking
86c22ff9ca fix conditional glXSwapInterval usage
and cleanup profiling relics

REVIEW: 105632
BUG: 303397
2012-07-21 19:59:09 +02:00
Thomas Lübking
6a934502b8 move KServiceTypeTrader::query() to main thread
KConfigGroup is not the least thread safe and unfortunately
the KServiceTypeTrader::self()->query() will in doubt create
one if the sycoca database was damaged.

BUG: 303713
REVIEW: 105608
2012-07-21 19:59:08 +02:00
Script Kiddy
b909bdc5c4 SVN_SILENT made messages (.desktop file) 2012-07-21 11:43:56 +02:00
Hugo Pereira Da Costa
6effa63296 added suffix (px) to shadow spinboxes. 2012-07-20 14:53:29 +02:00
Hugo Pereira Da Costa
ff1ba460ec added suffix (px) to shadow spinboxes. 2012-07-20 14:28:51 +02:00
Allen Winter
6082ebfaa4 Fix Linking by adding QtCore and QtGUI libs
CCMAIL: mgraesslin@kde.org
2012-07-19 20:01:00 -04: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
be3cfb06d0 Adding unit test for ScreenPaintData and WindowPaintData 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
Script Kiddy
88710b0f60 SVN_SILENT made messages (.desktop file) 2012-07-19 10:14:19 +02:00
Guy Maurel
dcf33ff419 missing include
Cherry-Picked from cb90b1e6a1125d41b55a7a608b1d917f84306070
BUG: 303630
FIXED-IN: 4.9.0
REVIEW: 105522
2012-07-19 07:11:45 +02:00
Script Kiddy
6c572929d8 SVN_SILENT made messages (.desktop file) 2012-07-18 10:04:35 +02:00
Script Kiddy
a0b9107edb SVN_SILENT made messages (.desktop file) 2012-07-17 17:16:25 +02:00
Script Kiddy
d79989b162 SVN_SILENT made messages (.desktop file) 2012-07-16 11:12:26 +02:00
Martin Gräßlin
a394fade64 Remove Tiling support from KWin
As discussed on the mailinglist [1] the tiling support is
removed from KWin. The main reasons for this step are:
* it is unmaintained
* it is a mode not used by any of the core KWin team
* original developer said at Akademy 2012 that he is not
  interested in picking up the work again
* tiling has quite some bugs, e.g. multi screen not supported
* is conflicting with other concepts in KWin, e.g. activities

There is ongoing work to get tiling supported through a KWin
script, which is a preferred way as it does not influence the
existing C++ code base.

[1] http://lists.kde.org/?l=kwin&m=133149673110558&w=2
BUG: 303090
FIXED-IN: 4.10
REVIEW: 105546
2012-07-14 11:18:06 +02:00
Martin Gräßlin
9f8a7b1af0 Merge branch 'KDE/4.9' 2012-07-14 11:17:38 +02:00
Martin Gräßlin
5517d4db2c Delay closing of a window by one event cycle
This is an issue we already had in the past with Aurorae. When
closing a window the graphics scene crashes because the deco
gets destroyed before the code in the graphics scene finished
the execution.

With the port to QML this seemed to be fixed unless as it turns
out it throws an XIO error on closing:
fatal IO error 11 (Resource temporarily unavailable) on X server ":0"

This can be triggered using glxgears. Closing glxgears would
reliable crash Aurorae. To circumvent this issue we have to
delay the close by one event cycle using QMetaObject's
invokeMethod with a Qt::QueuedConnection.

This has also to be done in the useractions menu as the menu
is still open when the window closes causing the same problem
inside Aurorae.

BUG: 303450
FIXED-IN: 4.9.0
Reviewed-By: Thomas Lüking
2012-07-14 11:11:02 +02:00
Martin Gräßlin
36ce64c705 Merge branch 'KDE/4.9' 2012-07-13 14:36:50 +02:00
Martin Gräßlin
6e70ed2087 Add missing break in case statment
This would have resulted in tiling specific code being executed
whenever a window tab group would have been closed.

REVIEW: 105547
2012-07-13 14:35:42 +02:00
Guy Maurel
0ee5c40faa missing include 2012-07-12 19:22:26 +02:00
Marco Martin
2524f0252e Merge branch 'KDE/4.9' 2012-07-12 11:12:31 +02:00
Thomas Lübking
6c4ef3ef35 re-use input window, prevent destryoing it
we cannot fix Qt DnD crashing on client destruction (eg. also occurs with toolptips)
but we can prevent it to happen with effects by just un/mapping the input window instead
of destroying and re-creating it

BUG: 179077
FIXED-IN: 4.10
REVIEW: 105339
2012-07-10 01:00:20 +02:00
Thomas Lübking
9390b270f8 substitute mapping_state == Withdrawn by m_managed
as the flamewar pointed out, resetShowingDesktop invalidly keeps hidden windows
the reason is that there're several updateVisiblity calls (notably one from the compositor)
which  break the showingDesktop state as a side effect (before ::manage() does it's thing)

Since they also invalidate the Withdrawn mapping state, that will fail as isManaged() test
(it's also invalidly used by the compositor to set up the decoration, isManaged() used to be
true because of the updateVisibility() call before) since the result is never Withdrawn

CCBUG: 299655
REVIEW: 105303
2012-07-10 01:00:00 +02:00
Thomas Lübking
bc24400010 honor rule when updating deco presence for reshape
CCBUG: 301909
REVIEW: 105485
2012-07-10 00:58:31 +02:00
Thomas Lübking
9a15d1921f honor rule when updating deco presence for reshape
CCBUG: 301909
REVIEW: 105485
2012-07-10 00:32:59 +02:00
Martin Gräßlin
830c17eebb Ensure that thumbnails do not get larger than the window
Upscaling windows looks really bad. If the thumbnail gets larger
than the window it's better to just use the orignal window size
and have the thumbnail rendered centered in the requested
region.

BUG: 297864
FIXED-IN: 4.9.0
REVIEW: 105459
2012-07-09 21:04:45 +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
Script Kiddy
825a9c4f6e SVN_SILENT made messages (.desktop file) 2012-07-09 11:17:38 +02:00
Martin Gräßlin
3746e4d7d8 Recreate lanczos filter whenever the screen size changes
The LanczosFilter has a FBO in screen size. When the screen
geometry changes this FBO has to be recreated. To go completely
sure the lanczos filter gets deleted on screen changes.

To achieve this the LanczosFilter is wrapped inside a
QWeakPointer so that we can track when it got deleted. This
brings an additional advantage by delaying the creation of the
shader till it is really needed, that is when for the first
time a window thumbnail with lanczos is rendered.

BUG: 296065
FIXED-IN: 4.9.0
REVIEW: 105479
2012-07-09 06:32:57 +02:00
Martin Gräßlin
4423b961a5 Fix incorrect connects of Activities in WorkspaceWrapper
Remember: a compiling connect does not mean it is correct.

BUG: 303200
FIXED-IN: 4.9.0
REVIEW: 105480
2012-07-09 06:31:58 +02:00
Script Kiddy
11788e8b6f SVN_SILENT made messages (.desktop file) 2012-07-06 10:16:34 +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
bcbd7181f1 don't load incompatible deco plugins in kcm
... and prevent accessing them in addition
shall fix crash Martin documented in
http://git.reviewboard.kde.org/r/105021/

REVIEW: 105379
2012-07-05 19:43:45 +02:00
Thomas Lübking
4660c2086a block some unversioned decoration plugins
... which are known to use the unstable API (qtcurve, crystal, oxygen*)

BUG: 301646
FIXED-IN: 4.9RC2
REVIEW: 105378
2012-07-05 19:43:45 +02:00
Thomas Lübking
2c65b718d3 restore stable kdecoration API to 4.8
BUG: 301728
FIXED-IN: 4.9rc2
REVIEW: 105377
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
Martin Gräßlin
e868ed8999 Do not use States and Transitions in QML of Aurorae
According to Nuno it's much better to define the animations in
a Behavior element as that is together with the element which
gets animated.

Also he recommends to not use states but just property binding
for the properties which are animated in the Behavior.

And I must admit that this produces cleaner code, though the
conditions are now scattered all over the source code and not
nicely put together in one state section. Let's just hope I got
the logic right.

Well seems like it is useful to go to a QML training, at least
it made me aware of my State definitions are not good and then
talking to Nuno and giving a try to his recommendations.

REVIEW: 105426
2012-07-05 15:22:57 +02:00
Martin Gräßlin
d2a9199cd9 Support for calling D-Bus methods from scripts
A new global method is exported to perform a remote method call
through D-Bus. The call is always performed async invoking a
callback once the call completed passing through the arguments
received from D-Bus.

Possible code looks like the following:
callDBus("org.kde.kwin", "/KWin", "org.kde.KWin", "currentDesktop", function (desktop) {
  print("Current Desktop through D-Bus: ", desktop);
});

REVIEW: 105396
2012-07-05 15:19:42 +02:00
Script Kiddy
6e6ac5a26b SVN_SILENT made messages (.desktop file) 2012-07-05 11:03:57 +02:00