Commit graph

158 commits

Author SHA1 Message Date
Martin Gräßlin
e5e5c4a020 Move push/popRenderTarget to kwingluitls
(De)Activating a FBO is OpenGL specific and does not belong into EffectsHandler.
2011-03-13 14:34:30 +01:00
Martin Gräßlin
16a025d907 Remove dynamic desktop layout
This has never been implemented properly. There is only the boolean
indicating that the desktop layout is dynamic but it is nowhere set
or used. So better remove it.
2011-03-13 14:04:02 +01:00
Martin Gräßlin
9199619969 Remove not implemented add/delete desktop
It is unlikely that anyone will implement it and it is not compatible
to EWMH anyway. So better remove it.
2011-03-13 13:58:00 +01:00
Martin Gräßlin
32c903b05b Rework signals for move/resize windows
First a signal is emitted when the user starts a move/resize operation.
During the move/resize operation each geometry change emits an update signal.
Last but not least a finish signal is emitted.

This eliminates the specific method for geometry updates in drawbound resize
mode.
2011-03-13 12:41:30 +01:00
Martin Gräßlin
640fdc7b6d PropertyNotify becomes a signal 2011-03-12 19:18:19 +01:00
Martin Gräßlin
88d50727ee WindowDamaged becomes a signal 2011-03-12 15:04:22 +01:00
Martin Gräßlin
39ab2cf29e MouseChanged becomes a signal 2011-03-12 14:37:30 +01:00
Martin Gräßlin
911098ee76 WindowGeometryShapeChanged becomes a signal 2011-03-12 12:34:59 +01:00
Martin Gräßlin
dcebc7481b ClientGroupItem* become signals
This needs to be improved in core. Currently ClientGroup does not yet
emit signals, as it would be difficult to connect them. Nevertheless
the effects dependency should be removed.
2011-03-06 21:15:09 +01:00
Martin Gräßlin
747afb4225 NumberDesktopsChanged becomes a signal
TODO: connect DesktopChangeOSD also to the signal
2011-03-06 20:10:11 +01:00
Martin Gräßlin
15757e953a TabBox uses signals to notify the effects
EffectsHandlerImpl just forwards the signals from TabBox. In order
to have a valid pointer to the TabBox, the TabBox is now initialized
before compositing in Workspace.
2011-03-06 12:15:16 +01:00
Martin Gräßlin
94c301a089 Move connection code to Client and unmanged into own method
--Code Duplication
2011-03-06 11:13:11 +01:00
Martin Gräßlin
a404ec4259 WindowUnminimized becomes a signal 2011-03-06 11:08:19 +01:00
Martin Gräßlin
012222037e WindowMinimized becomes a signal 2011-03-06 10:55:27 +01:00
Martin Gräßlin
edd0950f96 WindowOpacityChanged becomes a signal 2011-03-06 10:30:23 +01:00
Martin Gräßlin
eeb10c69d5 Signal for windowUserMovedResize
In core a new signal is added for maximizedState change of client.
Other function calls remain as direct calls for the moment.
2011-02-28 21:03:13 +01:00
Martin Gräßlin
e355700e6e EffectsHandler emits windowDeleted signal
Workspace emits a deletedRemoved signal which the EffectsHandlerImpl translates
into a windowDeleted signal.
2011-02-27 10:47:42 +01:00
Martin Gräßlin
0795ae89ac EffectsHandler emits signal on windowActivated
EffectsHandlerImpl connects to the Workspace signal clientActivated.
The emitting of the signal is slightly moved from before the activation logic
to after the activation logic. This might change behavior in the scripting
component, but the previous code looked wrong.
2011-02-27 10:05:04 +01:00
Martin Gräßlin
0b85768ec5 EffectsHandler emits windowClosed signal
Client and Unmanaged use a signal to notify that they are about to be closed.
The EffectsHandlerImpl is connected to those signals and emits the appropriate
windowClosed signal to which the effects are connected.
2011-02-27 09:25:45 +01:00
Martin Gräßlin
ab6f2ba1fd EffectsHandler emits windowAdded signal
All previously existing windowAdded methods are renamed to slotWindowAdded.
EffectsHandlerImpl is connected to Workspace's clientAdded signal, which is
emitted a little bit earlier than the previous direct method call. This might
change behavior.
Another signal is added to Workspace to signal that an unmanaged is added.
2011-02-25 22:06:02 +01:00
Martin Gräßlin
c3a076b6a5 EffectsHandler emits desktopChanged signal
The first signal used between EffectsHandler and Effects.
The signal is actually emitted by the EffectsHandlerImpl and only
the interested effects connect to this signal.
EffectsHandlerImpl itself is also notified by a signal from Workspace,
allowing to remove one of the many if (effects) checks.
2011-02-25 20:41:10 +01:00
Martin Gräßlin
b265537962 Drop dependency to libplasma from kwineffects library
Since the EffectFrames have been moved into KWin core nothing in the
Effects lib actually used Plasma. The only remaining method is moved
to core as it's not used in the Effects. The Effects itself still
link against Plasma, so nothing changes for them.

The Plasma includes in the kwineffects header seemed to pull in
quite some additional headers, so the includes in some effects have
to be adjusted (most often KConfigGroup). This should speed up the
compilation of the library and the effects.
2011-02-17 19:38:42 +01:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Thomas Lübking
48447a3d26 avoid recreating effectframes/textures on setPosition; correct position after setAlignment
svn path=/trunk/KDE/kdebase/workspace/; revision=1203489
2010-12-04 10:01:57 +00:00
Thomas Lübking
68fbd31ad8 add windowgeometry tip effect, bind it to the general setting and generalize effect feature provide api, thus update resize effect
BUG: 219755

svn path=/trunk/KDE/kdebase/workspace/; revision=1195300
2010-11-10 19:21:56 +00:00
Martin Gräßlin
6353d6ff57 Don't blur behind opaque window decorations.
Adding a new AbilityUsesBlurBehind which can be set by decorations with
alpha channel to request that the background can be blurred. This improves
the situation for our completely opaque default Oxygen decoration.

This change is a behavior change in comparison to 4.5! Translucent decorations do
not get blurred by default any more.
CCMAIL: craig.p.drummond@googlemail.com

svn path=/trunk/KDE/kdebase/workspace/; revision=1195274
2010-11-10 18:33:07 +00:00
Martin Gräßlin
382d5b15d3 Ignore Paint Clipper when rendering to FBO.
See Review Request http://svn.reviewboard.kde.org/r/4329/

svn path=/trunk/KDE/kdebase/workspace/; revision=1191903
2010-11-01 12:09:53 +00:00
Martin Gräßlin
48012c30fe Coding Style++
SVN_SILENT

svn path=/trunk/KDE/kdebase/workspace/; revision=1155057
2010-07-26 20:17:54 +00:00
Martin Gräßlin
ef79d4c443 Use the normal Plasma selection to highlight the selected window in boxswitch.
So it is more consistent (in KDE newspeak "elegant") with other selections and as a plus we get rid of all the custom rendering code in boxswitch.

svn path=/trunk/KDE/kdebase/workspace/; revision=1155051
2010-07-26 20:00:04 +00:00
Martin Gräßlin
89c0ea0c8d Pass EffectFrame through all effects, so that they can do something with the frame.
E.g. set a shader to invert it.
CCBUG: 241389

svn path=/trunk/KDE/kdebase/workspace/; revision=1154071
2010-07-24 16:29:16 +00:00
Martin Gräßlin
e2eebb6503 Refactoring of EffectFrame: EffectFrame becomes an interface just like EffectsHandler and EffectWindow and a concrete EffectFrameImpl in core.
Rendering of the EffectFrame is moved into the scene as Scene::EffectFrame with a concrete implementation in SceneXrender and SceneOpenGL.
A factory method for an EffectFrame is added to the EffectsHandler, which is used by the effects.
Next step: pass the EffectFrame through all effects, so that effects can transform, blur, invert whatever it.

svn path=/trunk/KDE/kdebase/workspace/; revision=1151271
2010-07-18 16:32:37 +00:00
Fredrik Höglund
b8815bbae6 Store the custom data in a QHash instead of a QMap, since QHash
should be faster.

svn path=/trunk/KDE/kdebase/workspace/; revision=1130551
2010-05-25 16:56:23 +00:00
Thomas Lübking
ffa8b5306c rename EffectsHandler::provideResizeEffect to singular, honor rules (also affecting the sync timer now)
svn path=/trunk/KDE/kdebase/workspace/; revision=1123660
2010-05-06 14:54:34 +00:00
Martin Gräßlin
fa7f160cb3 Window specific setting to skip window switchers (tabbox, present windows, desktop grid).
FEATURE: 171192
CCBUG: 179723

svn path=/trunk/KDE/kdebase/workspace/; revision=1122404
2010-05-03 20:04:44 +00:00
Martin Gräßlin
f6ebb5d913 Texture scaling in resize effect and disabling the drawbound when the effect is present.
This provides a good resizing performance for users having problems with the live-updating resize.
Patch by Thomas Lübking.

svn path=/trunk/KDE/kdebase/workspace/; revision=1118714
2010-04-25 18:40:04 +00:00
Martin Gräßlin
ec8d860c4b Allow effects to change the number of desktops and inform effects when the number of desktops is changed.
svn path=/trunk/KDE/kdebase/workspace/; revision=1108239
2010-03-28 09:04:14 +00:00
Fredrik Höglund
7ad2203084 Expose the decoration inner rect to effects.
svn path=/trunk/KDE/kdebase/workspace/; revision=1102475
2010-03-12 16:33:01 +00:00
Fredrik Höglund
55b5b593b2 Add EffectsHandler::decorationsHaveAlpha().
Effects can use this method to check if the decorations use
the alpha channel.

svn path=/trunk/KDE/kdebase/workspace/; revision=1099522
2010-03-05 18:21:14 +00:00
Lucas Murray
51168e97a4 Keep the logout effect active until KWin is killed or the user cancels
the logout by using new information provided by KSMServer; Allow effects
to read and detect root window property notify events.

svn path=/trunk/KDE/kdebase/workspace/; revision=1083335
2010-02-01 07:44:27 +00:00
Fredrik Höglund
b95c6f721c Make it possible for effects to store arbitrary data in EffectWindow.
svn path=/trunk/KDE/kdebase/workspace/; revision=1069539
2010-01-03 17:50:38 +00:00
Martin Gräßlin
2ff73028a0 Make it possible to move windows across screens in desktop grid.
BUG: 213845

svn path=/trunk/KDE/kdebase/workspace/; revision=1051265
2009-11-19 08:34:28 +00:00
Lucas Murray
a0d07d12a2 Merged r970865:1049322 from /branches/work/kwin-tabbing
Adds window tabbing support to KWin.
FEATURE: 42023

svn path=/trunk/KDE/kdebase/workspace/; revision=1049334
2009-11-15 03:24:04 +00:00
Martin Gräßlin
77f0f0eaca Adding the missing pieces for a nice and fast letterbox resizing as a replacement for the drawbound resizing.
Perhaps we should not display the totally ugly drawbound when we have an active resize effect.
CCBUG: 208770
CCBUG: 152638

svn path=/trunk/KDE/kdebase/workspace/; revision=1042711
2009-10-30 14:22:33 +00:00
Martin Gräßlin
aff72003dd The TabBox passes KeyEvents to the effects. So we can navigate with left/right/up/down in presentwindows when used as alt+tab effect. Filtering is of course disabled.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042596
2009-10-30 09:16:41 +00:00
Lucas Murray
ca9df8caae Add window snapping to the desktop grid effect.
Patch by Caio Marcelo de Oliveira Filho.
FEATURE: 188743

svn path=/trunk/KDE/kdebase/workspace/; revision=1031428
2009-10-05 04:06:20 +00:00
Lucas Murray
da37b1f16d Don't const effect proxies.
svn path=/trunk/KDE/kdebase/workspace/; revision=1018656
2009-09-02 02:30:22 +00:00
Martin Gräßlin
a26c5b1225 Configurable mouse actions in present windows for clicking a window and desktop.
It's possible to activate a window, exit without activating, bring window to current desktop, send window on all desktops, mimize the window and close the window.
Clicking desktop allows to activate selected window, exit without activating, show the desktop (minimize all apps) and of course do nothing.
FEATURE: 163116

svn path=/trunk/KDE/kdebase/workspace/; revision=988788
2009-06-28 17:17:29 +00:00
Martin Gräßlin
fcbd01779a Add support for activating present windows via XAtoms.
Present windows can be activated for all windows of a desktop by setting the atom _KDE_PRESENT_WINDOWS_DESKTOP to the number of desktop or -1 for all desktops.
Another atom _KDE_PRESENT_WINDOWS_GROUP can be used to activate present windows on a group of windows (e.g. tasks applet).
When present windows is deactivated the property on the manager window will be deleted.

svn path=/trunk/KDE/kdebase/workspace/; revision=988110
2009-06-27 10:21:49 +00:00
Lucas Murray
8d09ed341a Remove old decoration shadow API, rename AbilityProvidesShadow and add
support for the new decoration shadow API in the shadow effect.

svn path=/trunk/KDE/kdebase/workspace/; revision=980130
2009-06-11 08:11:13 +00:00
Michael Zanetti
32ef57aae7 Add bool keepAbove() to EffectWindow
svn path=/trunk/KDE/kdebase/workspace/; revision=969232
2009-05-17 18:26:49 +00:00