Commit graph

8754 commits

Author SHA1 Message Date
Thomas Lübking
6355a217c2 Magiclamp: fix integer overflow, cpu waste
BUG: 284738
2011-12-01 13:13:13 +01:00
Thomas Lübking
ac3bc1fcef apply effect transformations on taskbar thumbnail 2011-12-01 13:13:13 +01:00
Thomas Lübking
117eb46684 add mouse preference against focus chain
there's currently no GUI config item, use
   kwriteconfig --file kwinrc --group Windows --key NextFocusPrefersMouse true
   qdbus org.kde.kwin /KWin reconfigure

BUG: 159989
CCBUG: 80897
FIXED-IN: 4.8
2011-12-01 13:13:13 +01:00
Martin Gräßlin
946038f3c0 Use isDisplayed instead of isGrabbed to check if TabBox is shown
IsDisplayed also works in non-modal mode. IsGrabbed was just legacy.
2011-12-01 11:06:19 +01:00
Martin Gräßlin
5eb5a60cc5 Embedded mode for TabBox
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.
2011-12-01 08:48:18 +01:00
Thomas Lübking
e022efe2a2 pick bottomRight as current hook, cannot be < 0 (ie. no position transform in this direction) 2011-11-29 22:56:56 +01:00
Thomas Lübking
4cda501ce2 spellbind tiling and options->moveResizeMaximizedWindows
BUG: 246153
2011-11-29 22:07:55 +01:00
Thomas Lübking
6c934998a5 don't request focus by mouse events in the current event cycle
BUG: 279356
BUG: 286116
REVIEW: 103284
2011-11-29 21:11:11 +01:00
Thomas Lübking
82bf9d2d44 deny glsl by limited NPOT, not GLSL
BUG: 278828
REVIEW: 103283
2011-11-29 21:11:11 +01:00
Martin Gräßlin
b57ef77bf7 Adding a clip property to the ThumbnailItem
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.
2011-11-29 07:15:32 +01:00
Martin Gräßlin
cc6fa14c9b API improvements: open/close instead of start/close 2011-11-29 07:05:41 +01:00
Thomas Lübking
8503b6c2a1 initialize m_currentBuildQuadsIterator to avoid crashes if buildQuads is called before the first startPaint, but eg. from a propertyNotify event for a shadow 2011-11-27 18:36:59 +01:00
Martin Gräßlin
e858b413a3 Activate TabBoxClient from mouse click and close TabBox
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.
2011-11-27 17:03:35 +01:00
Martin Gräßlin
5a7120fbf5 Non-modal TabBox mode
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.
2011-11-27 16:39:54 +01:00
Martin Gräßlin
d2c7123dc6 TabBox becomes activatable through a DBus interface
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.
2011-11-27 16:38:11 +01:00
Thomas Lübking
065666e35b simplify general shadow building code
REVIEW: 103236
(cherry picked from commit 4089e5a1842906bb388d18ccb6a7b0437b8699e2)
2011-11-27 15:04:02 +01:00
Thomas Lübking
eedba353d6 simplify opengl shadow building code
REVIEW: 103236
(cherry picked from commit 9ff807b192313c01d2e4d77a2db791bd7b53b680)
2011-11-27 15:03:52 +01:00
Thomas Lübking
634a504ce1 straighten xrender shadow implementation
did not publish function & enum in the baseclass, but inlined the accessor

REVIEW: 103232
(cherry picked from commit ecfa39ac3ca1c9823a6b320ff0f7a60ab32f0418)
2011-11-27 15:03:41 +01:00
Thomas Lübking
f3d1261680 fix shadow quad update, allows to change shadow size with property update
(been OpenGL issue only)
fix TopLevel::visibleRect, broke shaded windows with empty (too big) shadows

REVIEW: 103231
(cherry picked from commit 535d40e7b4ca5a4431446c3d5c70e6d52f541fae)
2011-11-27 15:03:18 +01:00
Martin Gräßlin
245f84d835 Close windows from TabBox QML
Model exposes a method to close a window by index which is invoked
by the window strip QML.
2011-11-27 15:00:09 +01:00
Martin Gräßlin
9eb5a17e30 Support Closeable in TabBox
Needed by window strip to not add a close button to non-closeable
windows such as the desktop shell.
2011-11-27 14:15:49 +01:00
Martin Gräßlin
efe439e2bc Include WindowStrip as TabBox layout 2011-11-27 14:05:44 +01:00
Thomas Lübking
796c9d43ae "do NOT attempt to call suspendCompositing(true); from within the eventchain!" either...
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
2011-11-24 20:17:20 +01:00
Thomas Lübking
6ba2d30274 make glide effect respect the _KDE_SLIDE property
BUG: 287067
2011-11-24 20:17:20 +01:00
Thomas Lübking
19bb897c5b fix opacity bug in scene_xrender
resort xrender painting - paints deco after client to avoid pot. opacity mask recalculation
2011-11-24 20:17:19 +01:00
Thomas Lübking
5f9f4db401 export AnimationEffect class, add non float Point/Size construtors to FPx2
CCMAIL:kde-bindings@kde.org
This API change is in the kwin effect library and probably not of interest
2011-11-24 20:17:19 +01:00
Aaron Seigo
26953d412c make the calls to ksmserver async. dbus will queue other calls while ksmserver is budy for us.
this way window management doesn't stutter when stopping/starting activities.
2011-11-24 15:54:48 +01:00
Script Kiddy
290b990c5b SVN_SILENT made messages (.desktop file) 2011-11-16 09:33:08 +01:00
Thomas Lübking
dc6d442868 don't ::updateRules() in ::updateActivities()
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
2011-11-14 12:49:59 +01:00
Martin Gräßlin
9a1d0a7eec Use const access to list element
Saves a copy operation.
2011-11-13 20:11:00 +01:00
Thomas Lübking
6b148f1866 Move maximization when managing client
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
2011-11-13 18:50:37 +01:00
Thomas Lübking
011643d983 use contentsrect to calculate window size if baseUnit isn't 1,1
BUG: 283518
2011-11-13 18:40:17 +01:00
Martin Gräßlin
252c21e903 Use 128x128 for big icons TabBox 2011-11-12 22:42:04 +01:00
Martin Gräßlin
d89b9b3abe Do not stretch icons but use the smaller one with padding
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.
2011-11-12 22:39:01 +01:00
Martin Gräßlin
f27a00d8cd Setting a maximum highlight move duration on the TabBox layouts
Makes the wrapping around the corners much more usable...
2011-11-12 22:16:02 +01:00
Martin Gräßlin
219d0cc6a9 KConf Update for TabBox QML
* 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
2011-11-12 21:50:18 +01:00
Thomas Lübking
a3e268e737 checkWorspacePosition on screen changes only
REVIEW: 103029
BUG: 283302
2011-11-12 19:29:17 +01:00
Martin Gräßlin
ad950f71ab Fix desktop grid without present windows mode
Effect was not marked as active.
BUG: 282461
FIXED-IN: 4.8.0
2011-11-12 16:17:28 +01:00
Martin Gräßlin
4e8a0fcaec Declarative is a dependency of KWin in general and not just TabBox
Fixes broken build without TabBox since
8f569072db2fa6421f331a7d06b4c926d56081a9.
2011-11-11 12:47:31 +01:00
Fredrik Höglund
9fa2feabc8 kwin: Insert an input-only window above each decorated client
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.
2011-11-11 03:02:10 +01:00
Fredrik Höglund
3a91e4dee6 kwin: Add a KDecorationUnstable::region() slot
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.
2011-11-11 03:02:06 +01:00
Martin Gräßlin
5f96025532 Remove explicit Configure Layout button
Has been integrated with the other config buttons of window
switching combo box.
2011-11-10 21:55:06 +01:00
Martin Gräßlin
76f03823b1 Use config button of effect combo for layouts
When layout based switcher is selected the configure button next
to the combo box opens the layout configuration.
2011-11-10 21:55:06 +01:00
Martin Gräßlin
972529cabd Remove BoxSwitch from list of Window Switcher effects
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.
2011-11-10 21:54:57 +01:00
Martin Gräßlin
95430bc741 Remove window switching combo box from compositing UI
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.
2011-11-10 21:29:45 +01:00
Martin Gräßlin
571a87a0b7 Safetey check in TabBox's Image Provider
We cannot provide pixmaps if the client is null or the index
is for "there are no windows".
2011-11-10 21:23:14 +01:00
Martin Gräßlin
43109f7264 Caption of selected item underneath icon only TabBox 2011-11-10 20:44:05 +01:00
Martin Gräßlin
f98593d3fb Window Thumbnail support for QML
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
2011-11-10 14:28:06 +01:00
Anton Kreuzkamp
9fda63a7f2 Make the tab group XProperty have the right type. 2011-11-09 23:17:49 +01:00
Thomas Lübking
b0e4bcb984 demystify detection dialog for window rules
REVIEW: 103095
2011-11-09 21:24:08 +01:00