Commit Graph

45 Commits (8510f31340ac78d76df69a3bccb001f610613913)

Author SHA1 Message Date
Martin Flöser 24ff93854d [effects/slideback] Ignore windows which are not in visible area
Summary:
The PresentWindows effect does not hide the window to close the selected
window. Instead it moves it outside the visible area. As this is a
"special" KWin window it is on top of the stacking order and needs to be
ignored in the slideback effect.

Instead of doing a special casing for this window the effect is changed
to ignore windows outside the visible area in general. Windows outside
the visible area just don't make sense to block the slideback effect.

BUG: 381402
FIXED-IN: 5.10.4

Test Plan: Slideback works after using Present Windows effect

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6468
2017-07-06 19:12:06 +02:00
Martin Gräßlin 919b497f90 [effects/slideback] Consider windows which do have painting disabled as not usable
Summary:
On Wayland it can happen that a window is still in the stacking order
although it is not visible. This is mostly the case for Plasma windows.
So far the slideback effect did not ignore those windows and as they are
higher in the stacking order than most other windows it blocked the
effect from working once a Plasma panel element got closed.

This change considers a window which has painting disabled in the
stacking order as not usable and thus filters out all those windows.

BUG: 364483

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5462
2017-04-20 17:03:12 +02:00
Thomas Lübking 3525d1ce02 explicitly update the stack track on unminimization
the stackingOrderChanged() signal came before the window turned an effect window
usually this is no problem as the change shall not be caught anyway, but
the window may have changed its stack position

BUG: 353745
FIXED-IN: 5.5
REVIEW: 126134
2015-11-24 22:38:49 +01:00
Martin Gräßlin 76efe517a7 Turn built-in effects into a library kwin links against
As all effects have always been compiled into the same .so file it's
questionable whether resolving the effects through a library is useful
at all. By linking against the built-in effects we gain the following
advantages:
* don't have to load/unload the KLibrary
* don't have to resolve the create, supported and enabled functions
* no version check required
* no dependency resolving (effects don't use it)
* remove the KWIN_EFFECT macros from the effects

All the effects are now registered in an effects_builtins file which
maps the name to a factory method and supported or enabled by default
methods.

During loading the effects we first check whether there is a built-in
effect by the given name and make a shortcut to create it through that.
If that's not possible the normal plugin loading is used.

Completely unscientific testing [1] showed an improvement of almost 10
msec during loading all the effects I use.

[1] QElapsedTimer around the loading code, start kwin five times, take
average.

REVIEW: 115073
2014-01-24 14:13:59 +01:00
Thomas Lübking 499e34736b check list validity before taking last item
also block for tabboxes *around* stackorder changes

BUG: 315528
2013-03-05 19:24:30 +01:00
Martin Gräßlin 060451a7ec Remove unused includes in SlideBack Effect 2013-03-01 10:34:38 +01:00
Thomas Lübking 8129451ab3 re-settle slideBack effect to stackingOrderChanged
BUG: 294490
FIXED-IN: 4.11
2013-02-18 21:55:14 +01:00
Martin Gräßlin 2f6784be57 Remove slot for no-longer existing signal in Slideback
Leftover from tabbing rewrite.
2012-03-16 11:40:47 +01:00
Martin Gräßlin 2007a7eab8 Use namespaced parameters in signals
Required to get scripting bindings working.
2012-03-12 21:37:40 +01:00
Thomas Lübking 85635dd485 fix tabbing
BUG: 290959
BUG: 265160
BUG: 229292
BUG: 238279
BUG: 290758
BUG: 222831
BUG: 278275
BUG: 245747
BUG: 230000

BUG: 253697
BUG: 230570
BUG: 265977
BUG: 225337
BUG: 225339

REVIEW: 103855
2012-02-11 16:30:22 +01:00
Thomas Lübking bf88ec09ac Revert "fix tabbing"
pushed out of branch, not master - leading to absent revision, found hash collision??

This reverts commit 94b2ad7b85801e37e2df4671cdc4f26b6d7e5506.
2012-02-11 16:29:14 +01:00
Thomas Lübking d245035a17 fix tabbing
BUG: 290959
BUG: 265160
BUG: 229292
BUG: 238279
BUG: 290758
BUG: 222831
BUG: 278275
BUG: 245747
BUG: 230000

BUG: 253697
BUG: 230570
BUG: 265977
BUG: 225337
BUG: 225339

REVIEW: 103855
2012-02-11 16:01:41 +01:00
Martin Gräßlin fe4329a252 Only call active effects in the effect chain
Each effect is able to declare itself as currently being active,
that is transforming windows or painting or screen or doing anything
during the current rendered frame.

This change eliminates the hottest path inside KWin identified by
callgrind.

REVIEW: 102449
2011-08-29 07:06:58 +02:00
Martin Gräßlin 1793343847 Make Slideback work on OpenGL without PaintClipper 2011-07-05 20:18:21 +02:00
Michael Zanetti e1bf590a1c - fixes calculation of WindowMotionManager in case a new destination is set when the window is not at its original position and provide a function to check if windows
are currently moving (by Thomas Lübking)
- make use of new function and bugfix in SlideBack effect
2011-06-20 21:56:56 +02:00
Michael Zanetti 2f10503ee5 fix TabBox detection in SlideBack effect 2011-06-19 22:05:48 +02: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 a404ec4259 WindowUnminimized becomes a signal 2011-03-06 11:08:19 +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 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 0a7e48f7aa KWin uses kdelibs coding style. 2011-01-31 20:07:03 +01:00
Thomas Lübking 7d7cac1924 Fix #245372 (clipping error on VD change)
BUG: 245372

svn path=/trunk/KDE/kdebase/workspace/; revision=1197040
2010-11-14 18:03:36 +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
Lucas Murray 424d358fd2 Less Krazy warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1042583
2009-10-30 08:10:35 +00:00
Michael Zanetti 24b5877db2 Don't crash if a unusable windows (e.g. new plasma widget brwser) is unminimized
BUG: 210191

svn path=/trunk/KDE/kdebase/workspace/; revision=1035651
2009-10-15 15:41:35 +00:00
Michael Zanetti b5da07a822 dont trigger the effect if a window is closed and the focus falls
to a window other than the topwindow
BUG: 196900


svn path=/trunk/KDE/kdebase/workspace/; revision=1031353
2009-10-04 19:24:09 +00:00
Michael Zanetti 400ee1a6c8 work correctly with multiple modal windows
svn path=/trunk/KDE/kdebase/workspace/; revision=1023324
2009-09-14 14:22:31 +00:00
Michael Zanetti c30f25ca29 Add a full repaint after the animation
BUG: 198986

svn path=/trunk/KDE/kdebase/workspace/; revision=1001777
2009-07-24 09:03:10 +00:00
Michael Zanetti fe22d95d59 initialize variable correctly
svn path=/trunk/KDE/kdebase/workspace/; revision=992151
2009-07-06 11:30:46 +00:00
Michael Zanetti 8428462ed3 Don't activate SlideBack on unminimized Windows
BUG: 196900

svn path=/trunk/KDE/kdebase/workspace/; revision=992143
2009-07-06 11:13:48 +00:00
Michael Zanetti 3ed5568ec4 use qAbs() instead of abs()
BUG: 194790

svn path=/trunk/KDE/kdebase/workspace/; revision=977309
2009-06-03 20:44:41 +00:00
Michael Zanetti ccd04606cc properly unmanage windows if they are deleted while animation
svn path=/trunk/KDE/kdebase/workspace/; revision=972412
2009-05-24 21:15:23 +00:00
Michael Zanetti 4dee88ba65 fixed bug 193442. Thanks for the great test case.
BUG: 193442

svn path=/trunk/KDE/kdebase/workspace/; revision=972300
2009-05-24 14:26:00 +00:00
Michael Zanetti 5ebb6eec4d fixed initial race condition
BUG: 193456


svn path=/trunk/KDE/kdebase/workspace/; revision=972292
2009-05-24 14:00:35 +00:00
Michael Zanetti ff53c951d7 reverted 969982
svn path=/trunk/KDE/kdebase/workspace/; revision=970056
2009-05-19 13:52:50 +00:00
Michael Zanetti e10bd8cc11 Use PaintClipper in prePaintWindow instead of paintWindow
svn path=/trunk/KDE/kdebase/workspace/; revision=969982
2009-05-19 12:31:29 +00:00
Michael Zanetti 03c84e7789 Remove clipped area immediately after painting. Should fix bug 193094.
CCBUG: 193094

svn path=/trunk/KDE/kdebase/workspace/; revision=969412
2009-05-18 10:22:51 +00:00
Michael Zanetti fc21b3099c Don't handle windows set to keepAbove(). Fixes issues with windows like yakuake
or full screen windows.
Use PaintClipper instead of direcly subtracting from paint region.

svn path=/trunk/KDE/kdebase/workspace/; revision=969256
2009-05-17 19:38:06 +00:00
Michael Zanetti 33d2f0398b work with windows on all desktops
BUG: 190840

svn path=/trunk/KDE/kdebase/workspace/; revision=959955
2009-04-27 16:15:08 +00:00
Michael Zanetti 000b7bed5c eliminate flickering + minor fixes
svn path=/trunk/KDE/kdebase/workspace/; revision=959854
2009-04-27 12:57:52 +00:00
Michael Zanetti 95cb1b2744 behave better with modal windows
svn path=/trunk/KDE/kdebase/workspace/; revision=957551
2009-04-22 12:49:28 +00:00
Michael Zanetti a5d8b15573 bahave better if the user moves the window while changing the stacking
order

svn path=/trunk/KDE/kdebase/workspace/; revision=957532
2009-04-22 11:24:19 +00:00
Michael Zanetti 713e3b0c61 slide further away if the user moves the active window
svn path=/trunk/KDE/kdebase/workspace/; revision=956891
2009-04-20 21:19:14 +00:00
Michael Zanetti d6a5f717f2 Add new SlideBack effect
svn path=/trunk/KDE/kdebase/workspace/; revision=954446
2009-04-15 19:31:20 +00:00