Commit Graph

8574 Commits (9a1d0a7eecfcbd772438887113b21adae3831408)

Author SHA1 Message Date
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
Thomas Lübking bdc3cc5564 skip empty damages, reset damageRatio also when pixmaps are created 2011-11-09 21:24:07 +01:00
Fredrik Höglund 965feeb9f3 kwin: fix glBlitFramebuffer resolution
This function is also provided by GL_ARB_framebuffer_object.
2011-11-09 18:03:10 +01:00
Fredrik Höglund d858df569c kwin: Update a quirk for Gallium drivers in Mesa 7.10
The bug that prevented loose binding from working should be
fixed in Mesa 7.10.1.
2011-11-09 18:02:06 +01:00
Hugo Pereira Da Costa 12bcd08871 do not fade separator when it is drawn for both active and inactive windows. 2011-11-08 19:01:02 +01:00
Anton Kreuzkamp 98c89bcfd0 Make the window-tabbing group of a window public via an XProperty. 2011-11-07 20:52:21 +01:00
Thomas Lübking 795fbc643b do a full geometry calculation with the moveResize start, not first moveResize event
BUG: 285824
FIXED-IN: 4.7.4
(cherry picked from commit 19c6ab33b94cd3e531fa5c86fdff66a6f33f5e4a)
2011-11-05 16:21:57 +01:00
Martin Gräßlin c20e9c18c2 Load main QML file while creating TabBox View
Layout loading still delayed till first show event.
2011-11-04 20:08:23 +01:00
Martin Gräßlin ba98af770a Add safety check for invalid ModelIndex
With the new QML tabbox it could happen that the index is not
valid and nothing is selected in the view.
2011-11-04 19:27:02 +01:00
Marco Martin 6698801cb5 Merge branch 'ksplash/ksplash-qml' 2011-11-03 22:09:35 +01:00
Thomas Lübking d3331eed9c export the baseincrement size to the effectwindow and utilize it in the windowgeometry effect
BUG: 283518
REVIEW: 103033
FIXED-IN: 4.8
2011-11-03 21:49:20 +01:00
Marco Martin 69ad0fc5fc Merge branch 'master' into ksplash/ksplash-qml 2011-11-03 21:00:01 +01:00
Thomas Lübking 4cd4481663 don't use const_iterator's when calling non const functions
BUG: 282933
FIXED-IN: 4.7.4
2011-11-01 21:24:18 +01:00
Martin Gräßlin 6a94ff5641 Don't handle closing windows while BoxSwitch is inactive
This might be the cause for ghost windows, because they got
referrenced without being unreferrenced again.
CCBUG: 259640
2011-11-01 06:48:21 +01:00
Raphael Kubo da Costa f58653bdcd Clean up the X11 definitions after the X11 includes.
This fixes build problems after 8f43c5e: sm.h would include
X11/SM/SMlib.h, which includes X11/ICE/ICElib.h, which adds a #define
Status int, which breaks qdeclarativeview.h, included by
moc_declarative.cpp.

Reviewed-by: mgraesslin
2011-10-31 18:29:18 -02:00
Martin Gräßlin 8b9e7f56cf Pass mouse events to declarative Tabbox
The ListViews have therefore to emit a signal when the item changed
due to a mouse click event.
2011-10-31 14:34:37 +01:00
Script Kiddy 918087e34f SVN_SILENT made messages (.desktop file) 2011-10-31 09:48:42 +01:00
Martin Gräßlin 17834ae3f9 Request Icons in Correct Size 2011-10-31 08:51:34 +01:00
Martin Gräßlin 5c3a7afb36 Drop obsoleted files of TabBox Configuration
Old ui file for layout configuration no longer required and
preview of old TabBox no longer required (and was not used at all).
2011-10-31 08:43:37 +01:00
Martin Gräßlin 08d6f62ae7 New TabBox Layout configuration dialog
This dialog shows all available layouts with a preview.
2011-10-31 08:41:07 +01:00
Martin Gräßlin a38c0e31ca Adding new properties for optimalWidth/Height 2011-10-30 21:56:25 +01:00
Montel Laurent 98b843e51f Fix compile with strict iterator 2011-10-30 20:29:28 +01:00
Martin Gräßlin 585ef3c19f Drop all obsoleted config options from kwintabbox kcm 2011-10-30 16:24:06 +01:00
Martin Gräßlin aa17081fe8 TabBox in QML
All the default layouts (informative, compact, text, small and big icons)
are rewritten in QML and replace the ListView used before. The old code
is still around for the desktop switching modes which are not yet ported.

Next steps include to update the configuration module to not show now
obsoleted settings as well as providing a better way to choose the layout.

REVIEW: 102948
2011-10-30 16:07:14 +01:00
Fredrik Höglund ebd0d9303b kwin: Replace calls to QElapsedTimer::restart() with start()
It doesn't make sense to call restart() without using the return
value, or when the timer has never been started.
2011-10-29 17:41:16 +02:00
Fredrik Höglund eb9988b788 kwin: Make Scene::m_renderTimer a non-member
It's only used in Scene::paint(), and its value is not valid
between calls.
2011-10-29 17:41:16 +02:00
Fredrik Höglund c784dbb097 kwin: Fix two ;;'s 2011-10-29 17:41:16 +02:00
Fredrik Höglund fe08300505 kwin: Initialize Client::skip_switcher
This fixes a valgrind error
2011-10-29 17:41:16 +02:00
Fredrik Höglund 7f0c74cb38 kwin: Initialize Scene::lastRenderTime
This fixes a valgrind error
2011-10-29 17:41:16 +02:00
Fredrik Höglund 44165bb0d1 kwin: Initialize QElapsedTimers by calling invalidate()
QElapsedTimer doesn't have a constructor that initializes the
private members. This means that calls to isValid() will depend
on uninitialized data when the timer has never been started.

elapsed() and restart() will also use and return values
computed from uninitialized data.

This fixes several valgrind errors.
2011-10-29 17:40:09 +02:00