Commit graph

258 commits

Author SHA1 Message Date
Hugo Pereira Da Costa
4874785fb4 revert r1078325 and moves the handling of Maximize state changes when
un-grouping windows to clientgroup.cpp. Ensures that Client::maximize( 
MaximizeRestore ) is called when appropriate to avoid decoration artifacts.
BUG: 223060

svn path=/trunk/KDE/kdebase/workspace/; revision=1078877
2010-01-23 03:41:39 +00:00
Hugo Pereira Da Costa
346bcc30d3 Force update of decoration pixmap in setGeometry when maximize state is changed even if the size is
not, to handle changes in decoration pixelMetrics right.
BUG: 223060

svn path=/trunk/KDE/kdebase/workspace/; revision=1078325
2010-01-22 02:50:33 +00:00
Hugo Pereira Da Costa
f13d25a8df Fixed calculation on drag distance in Client::handleMoveResize to properly handle decoration padding, consistently with calculation of
"moveOffset" in Client::processDecorationButtonPress (in events.cpp).

BUG: 223366


svn path=/trunk/KDE/kdebase/workspace/; revision=1078291
2010-01-21 23:09:07 +00:00
Lucas Murray
41e5bfd793 Change how quick tiling and maximization is activated slightly. Instead
of using electric borders just check the location of the cursor; if the
cursor is near the edge enable the resize snap. This makes the features
easier to activate, removes the conflict with desktop switching and
allows the features to be used completely on multi-screen systems.
Patch inspired by one from Marcel Schaal.
BUG: 218957

svn path=/trunk/KDE/kdebase/workspace/; revision=1071996
2010-01-09 09:49:52 +00:00
André Wöbbeking
ab85881232 error: ISO C++ forbids variable length array
use QVarLengthArray instead

svn path=/trunk/KDE/kdebase/workspace/; revision=1069536
2010-01-03 17:26:27 +00:00
Lucas Murray
187d26a641 If both quick maximization and "allow moving and resizing of maximized
windows" are enabled then don't instantly restore maximized windows when
they are dragged.
BUG: 219952

svn path=/trunk/KDE/kdebase/workspace/; revision=1065887
2009-12-24 16:30:07 +00:00
Lucas Murray
ae3ef3f765 Allow the quick tiling keyboard shortcuts to move the window between
Xinerama screens.

svn path=/trunk/KDE/kdebase/workspace/; revision=1065319
2009-12-23 01:36:44 +00:00
Thomas Lübking
d92c427d36 avoid "deep" QVector copy
CCBUG: 217040

svn path=/trunk/KDE/kdebase/workspace/; revision=1064056
2009-12-20 01:49:39 +00:00
Lucas Murray
efb6055fc0 Fix window snapping.
svn path=/trunk/KDE/kdebase/workspace/; revision=1049888
2009-11-16 02:42:12 +00:00
Lucas Murray
e0bee92151 Update the window group's min/max size when the hint on any window in
the group changes.
BUG: 214673

svn path=/trunk/KDE/kdebase/workspace/; revision=1049636
2009-11-15 15:48:59 +00:00
Lucas Murray
5e93336473 Resize other windows in the group when a grouped window is resized by
the application.
CCBUG: 214673

svn path=/trunk/KDE/kdebase/workspace/; revision=1049618
2009-11-15 15:08:15 +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
77f0f0eaca Adding the missing pieces for a nice and fast letterbox resizing as a replacement for the drawbound resizing.
Perhaps we should not display the totally ugly drawbound when we have an active resize effect.
CCBUG: 208770
CCBUG: 152638

svn path=/trunk/KDE/kdebase/workspace/; revision=1042711
2009-10-30 14:22:33 +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
Marco Martin
36b39da955 respect the no border hint for windows that aren't maximized in case of
borderlessMaximizedWindows()

svn path=/trunk/KDE/kdebase/workspace/; revision=1035170
2009-10-14 13:07:31 +00:00
Lucas Murray
65e8bea70d Make quick maximization and tiling more intuitive by handling resize and
move operations in a logical fashion when a window is in the maximized
or tiled state.

svn path=/trunk/KDE/kdebase/workspace/; revision=1035021
2009-10-14 09:33:00 +00:00
Lucas Murray
e5d176b90b Fix quick tiling/maximize so other screen edge actions assigned to the
same edges work again.

svn path=/trunk/KDE/kdebase/workspace/; revision=1031990
2009-10-06 15:52:08 +00:00
Lucas Murray
d171c594ff Cancel a quick tile/maximize action if the user moves the window back
away from the edge of the screen without releasing the mouse button.

svn path=/trunk/KDE/kdebase/workspace/; revision=1031967
2009-10-06 14:56:10 +00:00
Lucas Murray
20f1a79d04 Less warnings please.
svn path=/trunk/KDE/kdebase/workspace/; revision=1031490
2009-10-05 09:47:13 +00:00
Lucas Murray
ca9df8caae Add window snapping to the desktop grid effect.
Patch by Caio Marcelo de Oliveira Filho.
FEATURE: 188743

svn path=/trunk/KDE/kdebase/workspace/; revision=1031428
2009-10-05 04:06:20 +00:00
Lucas Murray
52653a13b4 Don't send sync requests when using the rubber band for window resizing.
BUG: 181800
CCBUG: 183263

svn path=/trunk/KDE/kdebase/workspace/; revision=1030921
2009-10-03 14:07:49 +00:00
Lucas Murray
39a68673a4 Use correct fullscreen geometry when moving fullscreen windows across
Xinerama screens.
BUG: 188827

svn path=/trunk/KDE/kdebase/workspace/; revision=1030845
2009-10-03 10:00:31 +00:00
Lucas Murray
b4938657b8 Prevent KWin from sending out multiple sync requests before the client
has time to reply.
BUG: 183263

svn path=/trunk/KDE/kdebase/workspace/; revision=1030473
2009-10-02 10:50:13 +00:00
Marco Martin
154b0296a2 add a new (hidden for now) option: hide (and delete) the window borders
when the window is maximized, restoring them wen it's unmaximized. will
be used for small screen setups


svn path=/trunk/KDE/kdebase/workspace/; revision=1025694
2009-09-19 12:48:28 +00:00
Lucas Murray
b21b7cbb98 Fix quick tiling and maximization on multi-screen systems.
svn path=/trunk/KDE/kdebase/workspace/; revision=1024688
2009-09-17 08:11:01 +00:00
Robin Harold Burchell
102ec081e2 Extend on the quicktiling(/snap) work by mgraesslin in r1021305:
- Add hotkeys for snap left/snap right, kwin won't need a seperate hotkey for snap up, as maximize will do that job for us, and it already has a hotkey
 - Add geometry restoring to quick tile, meaning that windows can be moved back to their original state after a tile, useful if just looking at something quickly.

Thanks to mgraesslin for review and lots of mentoring.

svn path=/trunk/KDE/kdebase/workspace/; revision=1022987
2009-09-13 17:09:44 +00:00
Martin Gräßlin
9e3484e2f0 Adding new option to disable the legacy fullscreen mode (borderless, not netwm compliant windows with screen geometry).
It is disabled by default, but if it causes problems we will enable it again. In that case the "3rd party" (netbook shell) should set the option.
BUG: 206789
CC-MAIL: notmart@gmail.com

svn path=/trunk/KDE/kdebase/workspace/; revision=1021309
2009-09-08 20:19:20 +00:00
Martin Gräßlin
754f5d0829 Quick maximize and tiling when moving a window to the left/right or top screen edge.
Top screen edge (un)maximizes. Left screen edge sets window to left half of screen geometry, right edge to other half.

svn path=/trunk/KDE/kdebase/workspace/; revision=1021305
2009-09-08 20:01:08 +00:00
Lucas Murray
9842c3247e Obey window size hints when doing unrestricted resizes.
BUG: 196326

svn path=/trunk/KDE/kdebase/workspace/; revision=987516
2009-06-26 09:06:48 +00:00
Fredrik Höglund
a088f660a5 Make sure that the repainted area includes the whole decoration when
a window is moved or resized.

svn path=/trunk/KDE/kdebase/workspace/; revision=963609
2009-05-04 23:19:42 +00:00
Martin Gräßlin
91f0305942 Use foreach loop instead of iterator based for loop when walking through stacking_order in cascade desktop. It seems that stacking order is changed which is causing a crash with the iterator based version.
BUG: 190903

svn path=/trunk/KDE/kdebase/workspace/; revision=960527
2009-04-28 15:26:02 +00:00
Lucas Murray
c21bed5890 Allow moving and resizing above the top of the screen again when doing
an unrestricted move or resize.

svn path=/trunk/KDE/kdebase/workspace/; revision=940697
2009-03-18 02:34:07 +00:00
Toby Dickenson
0c166b6ecb call the windowUserMovedResized hook for maximize/restore. That method has two boolean parameters which indicate whether this is the first move in a sequence, and the last. For maximize/restore we set both to true, and several effects need tweaking to handle this case. Also include an addition to the wobbly windows effect to include a slight 'throb' when maximized/restored. This makes it easier for your eye to track where your de-maxized window went to. FEATURE 185014
svn path=/trunk/KDE/kdebase/workspace/; revision=934346
2009-03-02 20:18:35 +00:00
Lucas Murray
21f023ee77 Revert r925355, r925357 and r925358 as the crashing was caused by
Kephal and has since been fixed.

svn path=/trunk/KDE/kdebase/workspace/; revision=927675
2009-02-18 04:05:37 +00:00
Lucas Murray
ca901dae30 Improved window movement around struts. Windows can be moved anywhere
where the titlebar is still clickable even if it is outside the normal
work area. When struts are added or removed only move the windows that
cover the same area, leave all others untouched. If a strut is removed
on a xinerama screen that is not on the edge of the full desktop area
prevent the windows from being moved offscreen. Prevent struts/panels
from interfering with the movement of windows on other xinerama screens.
BUG: 74559
BUG: 90833
BUG: 160068

svn path=/trunk/KDE/kdebase/workspace/; revision=927466
2009-02-17 15:50:00 +00:00
Lucas Murray
0d6f29c18d Ignore struts half-way up the screen when calculating the available work
area. Fixes placement and resizing of windows on the larger monitor of a
xinerama setup where each monitor has a different resolution.
BUG: 184348

svn path=/trunk/KDE/kdebase/workspace/; revision=926545
2009-02-15 16:37:42 +00:00
Lucas Murray
beee5a8f85 If the cursor goes into the "dead" area of a Xinerama screen where the
two monitors have different resolutions treat it as if the cursor
didn't move at all when attempting to move a window. Prevents KWin from
crashing when in this situation.

svn path=/trunk/KDE/kdebase/workspace/; revision=925355
2009-02-13 06:15:59 +00:00
Luboš Luňák
1297fe6daa Fix position of gravitated windows after a crash.
http://lists.kde.org/?l=kwin&m=123149700221501&w=2


svn path=/trunk/KDE/kdebase/workspace/; revision=925062
2009-02-12 10:01:40 +00:00
Luboš Luňák
b50a8d352a Compress possible several reasons for resetting compositing.
svn path=/trunk/KDE/kdebase/workspace/; revision=923836
2009-02-09 14:37:07 +00:00
Frederik Schwarzer
a604e4a60d global typo fix
svn path=/trunk/KDE/kdebase/workspace/; revision=922431
2009-02-07 01:12:28 +00:00
Guillaume Pothier
b362b980cb Fixed many Kephal bugs.
BUG: 173017

svn path=/trunk/KDE/kdebase/workspace/; revision=910287
2009-01-12 23:45:03 +00:00
Lucas Murray
6d41a1320e Moved all debug, warning and error messages into the KWin 1212 area.
Replaced deprecated kdDebug() with kDebug().
Removed empty debug messages.

svn path=/trunk/KDE/kdebase/workspace/; revision=885620
2008-11-17 15:04:52 +00:00
Jason vanRijn Kasper
fb0a01228f This change allows KWin to use the new NETWinInfo2 class (binary
compatibility class) and subsequently properly handle the
_NET_WM_FULLSCREEN_MONITORS EWMH spec hint.

svn path=/trunk/KDE/kdebase/workspace/; revision=885362
2008-11-17 08:03:39 +00:00
Guillaume Pothier
f780e8b68b Kephalized plasma and kwin: replaced usage of QDesktopWidget by Kephal
svn path=/trunk/KDE/kdebase/workspace/; revision=884482
2008-11-15 03:04:44 +00:00
Laurent Montel
5535a9de5e Fix iterator
svn path=/trunk/KDE/kdebase/workspace/; revision=883047
2008-11-11 23:09:11 +00:00
Luboš Luňák
08571b2f52 Do not use 'assert( false )', with NDEBUG that is a no-op and
results in warnings about missing return.


svn path=/trunk/KDE/kdebase/workspace/; revision=861879
2008-09-17 11:44:51 +00:00
Lucas Murray
cc6e98cec9 If restoring a window that was maximized on a different screen don't restore to the old screen.
BUG: 169928

svn path=/trunk/KDE/kdebase/workspace/; revision=853323
2008-08-27 14:50:10 +00:00
Luboš Luňák
14ae8d2dc9 Support for unredirecting fullscreen windows, i.e. games etc. can paint directly
and not be slowed down by going through compositing. Turned on and no UI option
in the naive hope that it won't cause any real problems. Maybe effects doing
window previews should get API to suspend unredirect though.


svn path=/trunk/KDE/kdebase/workspace/; revision=851742
2008-08-24 13:32:57 +00:00
Luboš Luňák
818070d3aa Keep fullscreen windows covering the whole screen when it is the topmost
window on its xinerama screen.
FEATURE: 126817


svn path=/trunk/KDE/kdebase/workspace/; revision=851204
2008-08-23 09:20:42 +00:00
Lucas Murray
637f1dacb7 Fix off-by-one error in window corner snapping when resizing
svn path=/trunk/KDE/kdebase/workspace/; revision=840691
2008-08-01 14:45:49 +00:00