Commit graph

120 commits

Author SHA1 Message Date
Thomas Lübking
48939462da Strip QHash::operator[] from present window effect
also rewrite of the regular grid assignment - was
a) a suboptimal implementation
b) required because otherwise broken in desktopgrid proxy mode (which btw. polluted the effect through QHash::operator[])

BUG:262485
2011-04-03 23:39:33 +02:00
Martin Gräßlin
b52975a57e Merge branch 'libkwineffects'
The branch contains the first step in reworking the kwineffects
library. This includes:
* replacing virtuals by signals and slots
* dropping some unused methods
* remove KWin::TimeLine

More to come.

Conflicts:
	kwin/workspace.cpp
2011-03-16 19:46:59 +01:00
Martin Gräßlin
2cf51238a8 kwineffects doesn't use kdecorations 2011-03-13 16:56:25 +01:00
Martin Gräßlin
640fdc7b6d PropertyNotify becomes a signal 2011-03-12 19:18:19 +01:00
Martin Gräßlin
911098ee76 WindowGeometryShapeChanged becomes a signal 2011-03-12 12:34:59 +01:00
Martin Gräßlin
3529c34934 End PresentWindows effect after last window closed
Thanks to Marus Hähnel for this contribution to KDE.
CCMAIL: marcus@mh-development.info
FEATURE: 262540
FIXED-IN: 4.7.0
REVIEW: 100627
2011-03-06 19:08:14 +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
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
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
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
dd4a169147 Fix missing include 2011-02-12 10:14:30 +01:00
Fredrik Höglund
73be6657ea kwin: Replace brightness and opacity with a modulation constant
This makes it possible to adjust both brightness and opacity
at the same time with one multiplication in the fragment shader.
2011-02-12 01:45:38 +01:00
Fredrik Höglund
2045e8dd34 kwin: Use the new setUniform() overloads in presentwindows 2011-02-11 00:41:19 +01:00
Martin Gräßlin
0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Thomas Lübking
26d32df0da respect "ignore minimized" for all modes (except tabbox)
BUG: 259827

svn path=/trunk/KDE/kdebase/workspace/; revision=1207336
2010-12-17 15:10:18 +00:00
Thomas Lübking
267ce1942b option out close button, remove redundant tabbox config item
svn path=/trunk/KDE/kdebase/workspace/; revision=1195636
2010-11-11 17:04:42 +00:00
Martin Gräßlin
357f9f4174 Disable KWin shadow for the effect widgets in present windows and desktop grid
svn path=/trunk/KDE/kdebase/workspace/; revision=1189411
2010-10-25 01:40:36 +00:00
Martin Gräßlin
723f7d1a81 Delay showing the close window button in present window to prevent accidential closing of windows.
svn path=/trunk/KDE/kdebase/workspace/; revision=1189407
2010-10-25 01:33:44 +00:00
Martin Gräßlin
134314a5dc Don't rearrange windows when close view is added/deleted.
Caused funny movements in present windows alt+tab mode.

svn path=/trunk/KDE/kdebase/workspace/; revision=1189401
2010-10-25 00:45:41 +00:00
Martin Gräßlin
c7b7798910 Blurring behind the close window widget in present windows effect is useful
svn path=/trunk/KDE/kdebase/workspace/; revision=1181668
2010-10-01 17:50:37 +00:00
Martin Gräßlin
7e5d860cc3 Fix possible crasher introduced by the new close window feature
svn path=/trunk/KDE/kdebase/workspace/; revision=1181666
2010-10-01 17:48:04 +00:00
Martin Gräßlin
4be4a597c3 Close window widget in present windows effect.
Inspired by maemo a widget is added to close the highlighted window.
It is only shown if the mouse is moved above the highlighted window
and hidden again when the mouse leaves the highlighted window or
windows are rearranged.

svn path=/trunk/KDE/kdebase/workspace/; revision=1181373
2010-09-30 20:25:22 +00:00
Martin Gräßlin
e7eeae1e1d Disable Lanczos filter while moving windows in present windows.
Thanks to the movement the change of quality is hardly visible.

svn path=/trunk/KDE/kdebase/workspace/; revision=1176110
2010-09-16 18:04:48 +00:00
Luboš Luňák
d467d26530 Do not introduce such generic indentifiers like None or Styled
into KWin's global namespace. Morever None already kind of clashes with X's None.
CCMAIL: kde@martin-graesslin.com


svn path=/trunk/KDE/kdebase/workspace/; revision=1170588
2010-09-01 14:15:06 +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
Martin Gräßlin
3c7343fef0 We can blur the background behind panels in present windows. They won't move and without blurring it creates artefacts.
BUG: 242561
FIXED-IN: 4.5.1

svn path=/trunk/KDE/kdebase/workspace/; revision=1141849
2010-06-23 16:47:08 +00:00
Martin Gräßlin
3f10840169 Forward port rev 1136822:
If presentwindows does not get activated, we have to revert the tabbox state or next activation is not possible.
CCBUG: 240730

svn path=/trunk/KDE/kdebase/workspace/; revision=1136823
2010-06-10 21:00:41 +00:00
Martin Gräßlin
191435d425 Move Lanczos filter from taskbarthumbnail effect into the scene and use it also in boxswitch, presentwindows and thumbnailaside effects.
svn path=/trunk/KDE/kdebase/workspace/; revision=1133901
2010-06-02 20:04:54 +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
54c264bba0 Rearrange windows when the gemoetry changes in both pw and dg in pw mode.
BUG: 228829

svn path=/trunk/KDE/kdebase/workspace/; revision=1103206
2010-03-14 16:18:57 +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
Martin Gräßlin
fb8fc3001b Do not add NULL effect windows to the motion manager.
BUG: 222193

svn path=/trunk/KDE/kdebase/workspace/; revision=1073247
2010-01-11 21:24:00 +00:00
Martin Gräßlin
26555f6aa7 Only react on tabbox key events in present windows if the effect is activated.
svn path=/trunk/KDE/kdebase/workspace/; revision=1073187
2010-01-11 20:01:25 +00:00
Martin Gräßlin
14b7540b26 It's possible that there is no active window when activating present windows for a window class. In that case do not activate the effect.
BUG: 220916

svn path=/trunk/KDE/kdebase/workspace/; revision=1068693
2010-01-01 20:45:40 +00:00
Lucas Murray
c8a086a855 Show inactive tab windows in present windows when triggered by alt+tab.
svn path=/trunk/KDE/kdebase/workspace/; revision=1065325
2009-12-23 02:01:12 +00:00
Lucas Murray
223f1f2f0b Make desktop grid follow present window layout settings.
BUG: 214722

svn path=/trunk/KDE/kdebase/workspace/; revision=1063405
2009-12-18 03:34:28 +00:00
Lucas Murray
601086c81e Disable the direction keys in present window when there is no
highlighted window on the screen. Happens when no window matches the
current filter.
BUG: 212984

svn path=/trunk/KDE/kdebase/workspace/; revision=1062343
2009-12-14 11:44:01 +00:00
Martin Gräßlin
21b30c7a37 Do not fade out windows from other desktops when selecting a window on all desktops in present windows effect.
BUG: 212551

svn path=/trunk/KDE/kdebase/workspace/; revision=1059389
2009-12-06 13:54:23 +00:00
Martin Gräßlin
3859fff0de Desktop Grid uses Present Windows to lay out the windows on a desktop
FEATURE: 165745

svn path=/trunk/KDE/kdebase/workspace/; revision=1049548
2009-11-15 12:38:26 +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
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
8a8428e41c Less Krazy warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042572
2009-10-30 06:51:59 +00:00
Martin Gräßlin
e001fdff33 Hide the desktop windows from other virtual desktops in presentwindows. That can happen when option activity per desktop is set.
BUG: 212065

svn path=/trunk/KDE/kdebase/workspace/; revision=1042342
2009-10-29 17:02:41 +00:00
Lucas Murray
20f1a79d04 Less warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1031490
2009-10-05 09:47:13 +00:00
Martin Gräßlin
14e8285615 A window which is overlapping screens has to be moved to a position on its screen even if it is the only window on the screen.
BUG: 203210

svn path=/trunk/KDE/kdebase/workspace/; revision=1024193
2009-09-16 09:13:02 +00:00
Martin Gräßlin
76f17e6de1 Here comes the new TabBox. It is a complete rewrite using a MVC approach. Here some highlights:
* Models and Delegates for Clients and Desktops
 * Horizontal, vertical and tabular layout
 * Layout of one item can be configured by an XML definition
 * A desktop item can include a client list
 * An optional second list view showing only the selected item
 * A new KCM "kwintabbox"
 * An alternative TabBox with independent settings and keybindings
 * Optional Highlight Windows effect integration
 * List scrolls instead of removing items
 * Scroll wheel support
 * Cursor key support
 * Middle click on item closes window
BUG: 195745
BUG: 197187
BUG: 201103
FEATURE: 118184
FEATURE: 156723
FEATURE: 177441
FEATURE: 182897
FEATURE: 193882
GUI:

svn path=/trunk/KDE/kdebase/workspace/; revision=1022861
2009-09-13 11:36:45 +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
Laurent Montel
3ce5dd0ffc Fix includes
svn path=/trunk/KDE/kdebase/workspace/; revision=1018077
2009-09-01 07:05:48 +00:00
Martin Gräßlin
6a58eb589d Add fadeout to closed windows in present windows effect. During fadeout other windows are moved to a better possible position.
BUG: 200084

svn path=/trunk/KDE/kdebase/workspace/; revision=996370
2009-07-14 09:06:37 +00:00
Lucas Murray
4fe4c732c0 Fix present windows alt+tab behaviour.
BUG: 198711

svn path=/trunk/KDE/kdebase/workspace/; revision=995383
2009-07-12 15:24:58 +00:00
Martin Gräßlin
ae0bac5c42 New mode for present windows effect: selecting all windows of same class as active window.
svn path=/trunk/KDE/kdebase/workspace/; revision=989722
2009-06-30 19:11:02 +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
Thomas Lübking
fbedac8cad BUG: 195518
BUG: 182425
BUG: 181898


svn path=/trunk/KDE/kdebase/workspace/; revision=978605
2009-06-07 17:25:16 +00:00
Martin Gräßlin
f7199eac7b When a shader is bound pass correct values for texture height, texture width and opacity for text frame and icon frame from present windows to the shader.
This renders the texture correctly, although invert effect only inverts the text and not the background. *shrug*

svn path=/trunk/KDE/kdebase/workspace/; revision=962234
2009-05-01 20:41:38 +00:00
Martin Gräßlin
69b8e33fce Check for the global shortcut in the effects so that the shortcut actually toggles the effect. This is a workaround needed because the keyboard grab disables the global shortcut.
FEATURE: 156155

svn path=/trunk/KDE/kdebase/workspace/; revision=946787
2009-03-30 11:27:57 +00:00
Martin Gräßlin
92484573f2 Effects can be activated at more than one electric border.
FEATURE: 180548

svn path=/trunk/KDE/kdebase/workspace/; revision=946404
2009-03-29 12:57:20 +00:00
Lucas Murray
6d57716d53 Minor memory leak patch to present windows.
svn path=/trunk/KDE/kdebase/workspace/; revision=936614
2009-03-08 05:07:42 +00:00
Lucas Murray
27187f2c15 Correctly handle windows that were closed but not yet deleted when the
present windows desktop effect is activated.
CCBUG: 185127
CCBUG: 185239
BUG: 185856

svn path=/trunk/KDE/kdebase/workspace/; revision=934022
2009-03-02 07:48:56 +00:00
Lucas Murray
e0faab0e96 Added debug asserts to present windows. This will hopefully cause KWin
to crash instead of producing black screens making it easier to find the
cause. For the people who can reproduce existing crashes please resubmit
their backtraces with this change applied.
CCBUG: 185127
CCBUG: 185239

svn path=/trunk/KDE/kdebase/workspace/; revision=933187
2009-02-28 10:18:46 +00:00
Lucas Murray
d5ef2a7a87 Prevent present windows from crashing if the highlighted window from the
previous activation is closed and the effect is activated a second time.
BUG: 179537

svn path=/trunk/KDE/kdebase/workspace/; revision=933171
2009-02-28 09:21:54 +00:00
Lucas Murray
d4f16a8dca Why doesn't my system crash when deleting uninitialized data? In
unrelated news the fade effect is broken again... This time it prevents
windows from ever being deleted. This commit message wins the "most
unrelated" award.
BUG: 185239

svn path=/trunk/KDE/kdebase/workspace/; revision=930448
2009-02-23 14:24:20 +00:00
Lucas Murray
be268c1f4c SVN_SILENT Fix crash in present windows.
BUG: 185239

svn path=/trunk/KDE/kdebase/workspace/; revision=930007
2009-02-22 14:51:38 +00:00
Lucas Murray
1e91a66fd2 Added support for unstyled and frameless EffectFrames. Converted all
effects that display text or boxes to use the class. Minor speed
increase in XRender mode for those effects and a massive increase in
OpenGL mode (Double framerate in present windows in my case).

svn path=/trunk/KDE/kdebase/workspace/; revision=929951
2009-02-22 13:04:16 +00:00
Lucas Murray
e03748fba7 Added EffectFrame, a helper class that creates, manages and caches a
Plasma frame object. There are two ways to use this class: The first is
in "static" mode which gives the frame a set geometry and will not
change, the second is an automatic mode that creates the smallest
possible frame around the specified contents. Contents can either be
normal text and/or a QPixmap, useful for displaying the caption and icon
of the currently highlighed window.
Known bugs:
 - Does not detect Plasma theme changes, known to be in the Plasma
   library.
 - Slight graphical glitches, known to be in Qt 4.5.0 RC1.
Untested:
 - What happens when there is no Plasma theme installed.

svn path=/trunk/KDE/kdebase/workspace/; revision=929324
2009-02-21 04:53:13 +00:00
Lucas Murray
13c2f21e9d Added EffectWindow::acceptsFocus(). Prevent present windows from
displaying windows that cannot be focused anyway (Such as conky).

svn path=/trunk/KDE/kdebase/workspace/; revision=923091
2009-02-08 08:45:21 +00:00
Lucas Murray
81ffa5aec9 Raise electric border windows when an effect mouse input window is
created to allow effects to be toggled by active screen edges.

svn path=/trunk/KDE/kdebase/workspace/; revision=922121
2009-02-06 14:21:20 +00:00
Lucas Murray
a1c82cd52b Added support for inter-effect communication through the use of proxy
classes. Example code has been added to present windows and desktop
grid, if this code is not to be used by KDE 4.3 it should be removed and
added to a test effect instead.

svn path=/trunk/KDE/kdebase/workspace/; revision=922039
2009-02-06 10:15:06 +00:00
Lucas Murray
846496d2c1 Cleaned up the effects/ directory by moving each individual effect into
its own directory, cleaned up the effect config macros and renamed
"MakeTransparent" to "Translucency" so that it matches its visible name.

svn path=/trunk/KDE/kdebase/workspace/; revision=921749
2009-02-05 15:35:38 +00:00
Renamed from effects/presentwindows.cpp (Browse further)