DBus method to embedd the TabBox into another window. It follows
the geometry changes and keeps a defined offset to the borders of
the parent window.
Required for Plasma Active's window strip.
By default clip is enabled. This means that if the thumbnail would
overlap the "parent" window, it does not get rendered at all. If set
to false it will always be rendered. This is required for window strip
where the complete screen width is used, so overlap does not matter.
This is useful in combination of non-modal TabBox through DBus and
window-strip layout. With DBus the non-modal TabBox can be started
and selecting any item on the strip will end TabBox again.
Available through DBus. Be aware that this does not make much
sense, as there is no way to end TabBox mode except through the
DBus interface and this does not yet select the selected window.
Therefore TabBox is changed to be controlled without pressing a
modifier key. Tab and Backtab are valid keys now which can be
used to navigate in the list and return, enter and space can be
used to close the box (and select the client).
The TabBox is exported as object /TabBox on the kwin interface
providing start and close methods and signal when the TabBox got
closed.
did not publish function & enum in the baseclass, but inlined the accessor
REVIEW: 103232
(cherry picked from commit ecfa39ac3ca1c9823a6b320ff0f7a60ab32f0418)
sth. changed, possibly damage collection - dunno. however this now leads to undefined states as well
can't reproduce bug #280508 afterwards either - pot. implicitly fixing by bypassing pollution (BeFaded was
probably just resistent by different stacking order handling)
CCBUG: 280508
breaks remember rules when called by ::setActivity() in ::manage()
TODO: add activity rules and make remember state applying more robust in 4.9
BUG: 264981
Maximization of oversized windows must happen BEFORE keepInArea() is called
because that will through resizeWithChecks() lead to an artificial constrainment
to the WorkArea which is the combination of all screens minus all struts
this fails if only one screen struts and as a result the window is no more
bigger than FullArea which is used as maximization enforcing condition.
(Maximization must also happen AFTER placement, because otherwise the window
will eventually be maximized to the wrong MaximizeArea - Screens(s) - (local) struts
depending on xinerama settings)
BUG:285967
CCBUG:286146
CCBUG:183694
FIXED-IN:4.8
Thanks to Iceweasel for providing a maximum icon of 48x48 which
looks really bad when upscaled to 128x128. Orig icon is placed
in the center of a new pixmap in requested size.
* BoxSwitch users are migrated to new QML TabBox thumbnails layout
* Thumbnail layout is new default (as before was BoxSwitch)
* Removed obsoleted settings from TabBox config
This input-only window is used to capture events above the
client window and preventing them from reaching the client.
It is currently used to enlarge the borders by an invisible
amount, using the ExtendedBorderRegion provided by the
decoration.
This slot can be reimplemented by the decoration to return
the regions defined by KDecorationDefines::Region.
The only region defined initially is ExtendedBorderRegion.
This region specifies an invisible input region that can extend
both inside and outside the decoration.
The intended use case is to be able to have an active border
area that's larger than the visible borders.
Replaced by a TabBox layout. The effect is still there as it
can be used for desktop switching (which is not yet ported to layouts)
and as a proxy effect for CoverSwitch.
The users who use BoxSwitch will be migrated to the new layout.
Reduces duplication of settings in different areas and was only
providing a small subset of the possible window switching capabilities.
With BoxSwitch being possible to be rendered as a "normal" window
switcher it does not make much sense anyway.
A new QML item "ThumbnailItem" is registered to the TabBox. The
C++ implementation finds the EffectWindow of the TabBox and adds
itself to the EffectWindow.
While rendering the EffectWindow the information for all registered
ThumbnailItems are extracted and the thumbnail is rendered on top
of the EffectWindow.
This has obvious limitations like you cannot put other QML items
on top of the thumbnail. Nevertheless it works well enough to
be a possible replacement for e.g. BoxSwitch effect.
When compositing is disabled an icon is rendered instead of the
Thumbnail.
One TabBox Layout inspired by BoxSwitch Effect is added. For the
KCM small pre-rendered items are used.
REVIEW: 103039