Commit graph

377 commits

Author SHA1 Message Date
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
Luboš Luňák
e7b73e9e5f Fix indentation.
svn path=/trunk/KDE/kdebase/workspace/; revision=839198
2008-07-29 13:44:08 +00:00
Luboš Luňák
1802a82513 Fix out-of-bounds array access when increasing screen count with randr1.2.
BUG: 163045


svn path=/trunk/KDE/kdebase/workspace/; revision=839192
2008-07-29 13:36:55 +00:00
Lucas Murray
0581746327 Allow moving of maximized windows across screens
BUG: 131299

svn path=/trunk/KDE/kdebase/workspace/; revision=837644
2008-07-25 10:31:47 +00:00
Lucas Murray
e1683ef06f Snap to window corners.
BUG: 130452

svn path=/trunk/KDE/kdebase/workspace/; revision=837640
2008-07-25 10:19:28 +00:00
Lucas Murray
79a8f87268 Fix center snapping algorithm for unrestricted moves
Also don't snap when another snap zone is closer

svn path=/trunk/KDE/kdebase/workspace/; revision=837639
2008-07-25 10:16:09 +00:00
Lucas Murray
f01bfcc62b Added center snap zone to windows.
BUG: 133637


svn path=/trunk/KDE/kdebase/workspace/; revision=830029
2008-07-09 15:18:47 +00:00
Luboš Luňák
7453006a5d Make sure the geometry tip is visible.
BUG: 163997 


svn path=/trunk/KDE/kdebase/workspace/; revision=822551
2008-06-20 16:21:03 +00:00
Luboš Luňák
10af64fc67 Compute workarea diffs right when setting geometry, not delayed.
Fixes e.g. 'Move Window to Next Screen' shortcut.
BUG: 163051  


svn path=/trunk/KDE/kdebase/workspace/; revision=815700
2008-06-02 14:34:05 +00:00
Luboš Luňák
22b3584b8d When trying to keep a window fully inside an area, shrink if necessary and possible.
svn path=/trunk/KDE/kdebase/workspace/; revision=814467
2008-05-30 11:45:15 +00:00
Luboš Luňák
fb1827d124 Replace -1 with active screen in clientArea() if needed.
svn path=/trunk/KDE/kdebase/workspace/; revision=810009
2008-05-19 21:22:06 +00:00
Aike J. Sommer
2cfa81c2fc Allow desktop-type windows to only span one xrandr/mergedfb/xinerama-screen instead of all screens combined.
Forgot to remove QDesktopWidget includes, sorry!

svn path=/trunk/KDE/kdebase/workspace/; revision=803353
2008-05-02 16:39:49 +00:00
Aike J. Sommer
1819ad69b2 Allow desktop-type windows to only span one xrandr/mergedfb/xinerama-screen instead of all screens combined.
svn path=/trunk/KDE/kdebase/workspace/; revision=803349
2008-05-02 16:35:35 +00:00
Luboš Luňák
26b79d9177 Use QVector instead of plain-C-error-prone-memory-leaking arrays.
svn path=/trunk/KDE/kdebase/workspace/; revision=798503
2008-04-18 12:57:16 +00:00
Luboš Luňák
e7c88f309d Reduce the difference between noborder requested by the application
and set by the user - they're now interchangeable. Which means
that Alt+F3/Advanced/No border can put the window decoration
back on the KRunner window regardless of what Plasma or any other
app thinks.


svn path=/trunk/KDE/kdebase/workspace/; revision=788964
2008-03-23 00:12:11 +00:00
Luboš Luňák
38291eb82c Make border sizes while maximizing take effect even when the actual
geometry does not change.
BUG: 158252


svn path=/trunk/KDE/kdebase/workspace/; revision=787741
2008-03-19 19:32:32 +00:00
Bill Egert
c12a07e11a Update QRect stuffs.
intersect() => intersected()
addCoords() => adjust()
coords() => getCoords()
moveBy() => translate()
rect() => getRect()

svn path=/trunk/KDE/kdebase/runtime/kstyles/; revision=776918
2008-02-19 01:58:04 +00:00
Luboš Luňák
d40cbd887a Handle correctly the case when maximization changes in both direction
in opposite ways.
BUG: 153970


svn path=/trunk/KDE/kdebase/workspace/; revision=762644
2008-01-17 15:44:21 +00:00
Luboš Luňák
5c7798c884 Make maximizing change full->vertical/horizontal work
if there's no saved restore geometry.


svn path=/trunk/KDE/kdebase/workspace/; revision=762640
2008-01-17 15:37:52 +00:00
Luboš Luňák
a30d1ee6ad Call updateShape() unconditionally, it checks itself for shape presence
and also handles input shape, about which shape() call doesn't say anything.
BUG: 152809


svn path=/trunk/KDE/kdebase/workspace/; revision=749695
2007-12-17 16:30:36 +00:00
Rivo Laks
491445fb65 Add repaint for the new position of the window as well.
svn path=/trunk/KDE/kdebase/workspace/; revision=742661
2007-11-28 15:02:29 +00:00
Luboš Luňák
2de13954d1 Ensure forced position really takes place.
svn path=/trunk/KDE/kdebase/workspace/; revision=742658
2007-11-28 14:44:53 +00:00
Luboš Luňák
4dc72ace64 Detect when enforcing position fails.
svn path=/trunk/KDE/kdebase/workspace/; revision=742656
2007-11-28 14:33:35 +00:00
Luboš Luňák
01bf6cbb4c License cleanup - add headers where missing, be explicit about GPL
being v2+ (right now it says just GPL, which according to GPL itself
means any GPL). Decoration clients will come later.
CCMAIL: kwin@kde.org


svn path=/trunk/KDE/kdebase/workspace/; revision=742302
2007-11-27 19:40:25 +00:00
Luboš Luňák
ab70575d1f Make the outline for moving/resizing work with Qt4, which bothers
to support XOR painting only when XRender is available. Given that
outline should be mainly used with older systems, go for a DIY Xlib-based
solution. Needs changes in decorations using it.
BUG: 149997


svn path=/trunk/KDE/kdebase/workspace/; revision=739136
2007-11-20 16:00:58 +00:00
Laurent Montel
994c800d79 Adapt to new KWarning/kFatal/kDebug api
svn path=/trunk/KDE/kdebase/workspace/; revision=695877
2007-08-03 06:59:24 +00:00
Luboš Luňák
ab1582de27 It's really interesting that KWin has had support for an arbitrary root
window, but I don't think it really works these days, and it's probably
also not useful at all.


svn path=/trunk/KDE/kdebase/workspace/; revision=689949
2007-07-19 16:24:51 +00:00
Luboš Luňák
162d6ac7c9 Support for _NET_WM_SYNC_REQUEST, based on a patch
by Rayiner Hashem <gtg990h@mail.gatech.edu>.


svn path=/trunk/KDE/kdebase/workspace/; revision=679986
2007-06-25 08:51:44 +00:00
Luboš Luňák
ef59c8956a When doing a forced geometry update while updates are suspended, remember to force the geometry
update when resuming.


svn path=/trunk/KDE/kdebase/workspace/; revision=677635
2007-06-19 15:40:09 +00:00
Pino Toscano
38267e8ac6 less qt3support
svn path=/trunk/KDE/kdebase/workspace/; revision=672194
2007-06-06 10:37:37 +00:00
Luboš Luňák
61ada25cdf Rework r293762 - enter move/resize mode also when the user just
holds the mouse button down for a moment, without moving.


svn path=/trunk/KDE/kdebase/workspace/; revision=667351
2007-05-22 15:46:42 +00:00
Luboš Luňák
02405eccd7 Set active Xinerama screen when moving.
svn path=/trunk/KDE/kdebase/workspace/; revision=662863
2007-05-09 12:26:32 +00:00
Luboš Luňák
1dd1daec48 Shortcuts for switching and moving windows between Xinerama screens.
CCBUG: 80755


svn path=/trunk/KDE/kdebase/workspace/; revision=662089
2007-05-07 13:13:48 +00:00
Luboš Luňák
d510baf365 Option for separating focus between Xinerama screens.
svn path=/trunk/KDE/kdebase/workspace/; revision=662065
2007-05-07 12:18:19 +00:00
Luboš Luňák
7a0f50b298 KWM->KWindowSystem
svn path=/trunk/KDE/kdebase/workspace/; revision=659662
2007-04-30 15:48:34 +00:00
Luboš Luňák
70e0c099d8 Merging from old trunk:
r625469 | hermier | 2007-01-20 10:56:57 +0100 (Sat, 20 Jan 2007) | 1 line

#625468 ported to KDE4


svn path=/trunk/KDE/kdebase/workspace/; revision=659525
2007-04-30 11:36:29 +00:00
Luboš Luňák
176f0e39ce Merging from old trunk:
r608815 | lunakl | 2006-11-28 15:15:38 +0100 (Tue, 28 Nov 2006) | 4 lines

Confine mouse to the screen when doing move/resize.
(BUG: 88506)


svn path=/trunk/KDE/kdebase/workspace/; revision=659466
2007-04-30 09:39:24 +00:00
Luboš Luňák
5feb577369 Merging from old trunk:
r571712 | lunakl | 2006-08-10 15:15:16 +0200 (Thu, 10 Aug 2006) | 3 lines

Support for input shape from XShape1.1 (#122425).


svn path=/trunk/KDE/kdebase/workspace/; revision=659272
2007-04-29 21:19:29 +00:00
Luboš Luňák
f52b8e48cd branches/work/kwin_composite becomes new trunk kwin.
svn path=/trunk/KDE/kdebase/workspace/; revision=659202
2007-04-29 17:35:43 +00:00
Luboš Luňák
2b7e1f4993 Remove kwin, kwin_composite will become new trunk kwin, missing merges
from trunk will be merged in.


svn path=/trunk/KDE/kdebase/workspace/; revision=659200
2007-04-29 17:34:49 +00:00
Luboš Luňák
e1406c3e42 Utility function for XGrabKeyboard().
svn path=/branches/work/kwin_composite/; revision=654227
2007-04-15 14:39:10 +00:00
Rivo Laks
02032f8587 Move most (all?) internal methods from EffectsHandler to EffectsHandlerImpl.
The ugly side effect of this is that there are tons of static_casts in the code now... maybe it
  would be better to add effectImpl() convenience method and use that?

svn path=/branches/work/kwin_composite/; revision=652348
2007-04-10 18:47:13 +00:00
Luboš Luňák
2c928221a4 namespace KWinInternal -> KWin - shorter typing of names in gdb, yay
svn path=/trunk/KDE/kdebase/workspace/; revision=650773
2007-04-05 12:12:10 +00:00
Luboš Luňák
e3b865cd5f namespace KWinInternal -> KWin - shorter typing of names in gdb, yay
svn path=/branches/work/kwin_composite/; revision=650770
2007-04-05 12:07:35 +00:00
Luboš Luňák
35bbf89aed Add support for activating features using window borders/corners.
Enabled it for PresentWindowsEffect for now.


svn path=/branches/work/kwin_composite/; revision=650532
2007-04-04 19:08:03 +00:00
Luboš Luňák
3617d1bf8a Merge r649608, r649403, r649230 and r648582 from trunk (porting).
svn path=/branches/work/kwin_composite/; revision=649948
2007-04-03 13:24:05 +00:00
Luboš Luňák
10ea80a963 KWin/KWinModule -> KWM
svn path=/trunk/KDE/kdebase/workspace/; revision=649608
2007-04-02 21:30:50 +00:00
Luboš Luňák
8b5b40e4e8 Shadows. Right not it's only flat black rectangle, but otherwise
everything should work.


svn path=/branches/work/kwin_composite/; revision=646315
2007-03-25 10:48:07 +00:00
Luboš Luňák
f6ad1881e1 Support for window thumbnails.
svn path=/branches/work/kwin_composite/; revision=640344
2007-03-07 17:50:33 +00:00
Luboš Luňák
4019dff500 Distinguish between damage and repaints - damage is when windows contents
change, repaint just triggers repaint of the area (without e.g. the texture
updating for OpenGL).
addDamage() -> addRepaint()
CCMAIL: kwin@kde.org


svn path=/branches/work/kwin_composite/; revision=632866
2007-02-12 15:22:43 +00:00
Luboš Luňák
559f90a06a Damage also new position after moving.
svn path=/branches/work/kwin_composite/; revision=632609
2007-02-11 18:46:50 +00:00
Philip Falkner
ca856c28e1 Fix compositing repaint bug where moving a window would not draw properly (especially noticeable when snapping to a border).
svn path=/branches/work/kwin_composite/; revision=632339
2007-02-10 18:28:04 +00:00
Luboš Luňák
4e20ef71e4 r629143 was supposed to go to trunk, kwin_composite is only for compositing work.
svn path=/trunk/KDE/kdebase/workspace/; revision=629362
2007-02-02 14:24:00 +00:00
Dirk Mueller
b34d4ac7c4 xrandr support (hopefully this compiles, can't test here)
svn path=/branches/work/kwin_composite/; revision=629143
2007-02-01 15:39:44 +00:00
Luboš Luňák
7cb649edcb Tell scene about size changes.
svn path=/branches/work/kwin_composite/; revision=628606
2007-01-30 16:49:08 +00:00
Luboš Luňák
0ae5a772e7 Add EffectWindow as a window representation for effects,
to hide the change from Client/Unmanaged and eventually also
act as the only API available to effects.


svn path=/branches/work/kwin_composite/; revision=626360
2007-01-22 22:57:22 +00:00
Michel Hermier
0fdc6c4469 #625468 ported to KDE4
svn path=/trunk/KDE/kdebase/workspace/; revision=625469
2007-01-20 09:56:57 +00:00
Luboš Luňák
ab8d845718 Reset compositing on XRandr changes to react on screen
size or refresh rate changes, patch by Philip Falkner.


svn path=/branches/work/kwin_composite/; revision=610114
2006-12-03 13:29:57 +00:00
Luboš Luňák
b1ce5309a3 Configure mouse to the screen when doing move/resize.
BUG: 88506


svn path=/trunk/KDE/kdebase/workspace/; revision=608815
2006-11-28 14:15:38 +00:00
Luboš Luňák
951448b575 Try to reduce damage caused by window moving.
svn path=/branches/work/kwin_composite/; revision=606266
2006-11-19 20:08:56 +00:00
Luboš Luňák
09781249b9 Name the class used to postpone geometry changes also Blocker,
to be consistent with the one used for stacking changes.


svn path=/branches/work/kwin_composite/; revision=606262
2006-11-19 20:04:31 +00:00
Luboš Luňák
3f46d36bb9 Add convenience functions for damaging full area.
svn path=/branches/work/kwin_composite/; revision=598834
2006-10-24 19:28:17 +00:00
Luboš Luňák
b168c35384 Don't cache window pixmap, it's used only after it
changes.


svn path=/branches/work/kwin_composite/; revision=593453
2006-10-07 21:20:23 +00:00
Luboš Luňák
06203d0652 Don't bother with trying to transform window damage,
when there are any transformations, it should simply
repaint everything (todo).


svn path=/branches/work/kwin_composite/; revision=593450
2006-10-07 21:18:36 +00:00
Luboš Luňák
649887d6c2 Looks like using XserverRegion for keeping damage regions
wasn't that good idea. Changed to QRegion.


svn path=/branches/work/kwin_composite/; revision=590648
2006-09-30 15:40:03 +00:00
Luboš Luňák
fa8cd7541f It wasn't a very good idea to do even compositing-unrelated
work in the work/kwin_composite branch.
svn merge revs 558154,558180,558236,558243,558258,562201


svn path=/trunk/KDE/kdebase/workspace/; revision=571776
2006-08-10 17:00:14 +00:00
Luboš Luňák
293f093ea1 Support for input shape from XShape1.1 (#122425).
svn path=/trunk/KDE/kdebase/workspace/; revision=571712
2006-08-10 13:15:16 +00:00
Luboš Luňák
e24815411a Keep damage info separately for every window.
svn path=/branches/work/kwin_composite/; revision=561966
2006-07-13 18:17:49 +00:00
Luboš Luňák
0516e1e73b Add support for translation and add two "plugins" that
make windows transparent or shake them while moving.


svn path=/branches/work/kwin_composite/; revision=559013
2006-07-06 13:17:44 +00:00
Luboš Luňák
f400646a6d xrender compositing work - now it uses damage areas
to reduce amount of painting


svn path=/branches/work/kwin_composite/; revision=558580
2006-07-05 16:04:11 +00:00
Luboš Luňák
f4f07d4fd3 Remove kompmgr-related code except for the generic parts like
the slider in Alt+F3.


svn path=/branches/work/kwin_composite/; revision=558258
2006-07-04 23:30:05 +00:00
Luboš Luňák
4f12c1e606 Some first attempt at effects interface.
svn path=/branches/work/kwin_composite/; revision=558191
2006-07-04 20:51:01 +00:00
Luboš Luňák
571ba9cf9e Basic compositing support. It doesn't actually do anything
besides drawing what should be drawn anyway, and there are
still some things missing like stacking order for override
redirect windows, but KWin is basically a compositing manager now.


svn path=/branches/work/kwin_composite/; revision=558168
2006-07-04 20:02:07 +00:00
Luboš Luňák
e0dcc3ba46 Some convenience functions for QX11Info stuff.
svn path=/branches/work/kwin_composite/; revision=558154
2006-07-04 19:36:19 +00:00
Luboš Luňák
5646eafb33 Do the miscalculated-place-at-the-same-position hack only
if it comes from an application.


svn path=/trunk/KDE/kdebase/workspace/; revision=548841
2006-06-06 15:56:43 +00:00
Luboš Luňák
d3b5bf8a68 Size can be empty during attempted resize, avoid the warning.
svn path=/trunk/KDE/kdebase/workspace/; revision=546265
2006-05-29 16:00:19 +00:00
Thorsten Roeder
e000f78091 fixing some EBN issues
svn path=/trunk/KDE/kdebase/workspace/; revision=542916
2006-05-20 15:56:37 +00:00
Laurent Montel
5725624c8b #include <q...h> -> #include <Q...>
svn path=/trunk/KDE/kdebase/workspace/; revision=540496
2006-05-13 16:33:18 +00:00
Luboš Luňák
7f04417ad5 One more of "When a window resizes, first try to keep it inside its xinerama screen."
svn path=/trunk/KDE/kdebase/workspace/; revision=528602
2006-04-11 13:47:32 +00:00
Luboš Luňák
21644ee234 I hate backwards compatibility.
svn path=/trunk/KDE/kdebase/workspace/; revision=527752
2006-04-09 09:40:21 +00:00
Luboš Luňák
f9a6c6c9ba So this is why fullscreening on xinerama is so random ... reverting r423736.
If you want KWin to obey the app's idea of what fullscreen geometry might be
just force obeying strict geometry in the workarounds tab in window-specific
settings.


svn path=/trunk/KDE/kdebase/workspace/; revision=514433
2006-02-28 13:03:31 +00:00
Luboš Luňák
c4e72833fe When a window resizes, first try to keep it inside its xinerama screen.
svn path=/trunk/KDE/kdebase/workspace/; revision=513048
2006-02-24 10:36:03 +00:00
Luboš Luňák
cfb1b5e42d Handle struts set by panels that are at xinerama edges that
are inside the virtual area.


svn path=/trunk/KDE/kdebase/workspace/; revision=511696
2006-02-20 17:41:13 +00:00
Luboš Luňák
10775a9763 ScreenArea is supposed to be without struts.
svn path=/trunk/KDE/kdebase/workspace/; revision=511672
2006-02-20 16:48:48 +00:00
Luboš Luňák
b9f3db77d4 Dump the hack that tries to guess partial xinerama-aware struts from the old ones.
svn path=/trunk/KDE/kdebase/workspace/; revision=511660
2006-02-20 16:18:18 +00:00
Allen Winter
ae65a40c7a TRUE->true, FALSE->false
svn path=/trunk/KDE/kdebase/workspace/; revision=511180
2006-02-19 01:33:48 +00:00
Allen Winter
441523a689 Replace obsolete QMAX() and QMIN() with qMax() and qMin().
svn path=/trunk/KDE/kdebase/workspace/; revision=510739
2006-02-17 21:54:55 +00:00
Luboš Luňák
406c89a8b2 Fix setting of minsize used in Client::sizeForClientSize()
if base size is set and minsize is not (#121968).


svn path=/trunk/KDE/kdebase/workspace/; revision=509609
2006-02-15 09:53:06 +00:00
Laurent Montel
0fa10f318d Deprecated--
svn path=/trunk/KDE/kdebase/workspace/; revision=506323
2006-02-06 14:47:18 +00:00
Eike Hein
0aeabb9550 Forward-port r494303 from 3.5 branch.
svn path=/trunk/KDE/kdebase/workspace/; revision=494311
2006-01-04 16:16:26 +00:00
Stephan Kulow
6c821aba01 some more compiling
svn path=/trunk/KDE/kdebase/workspace/; revision=473006
2005-10-22 11:35:06 +00:00
Luboš Luňák
7abacfa2fb When just adjusting maximized state e.g. because of workarea changes,
don't destroy data about restoring back.


svn path=/trunk/KDE/kdebase/kwin/; revision=449976
2005-08-17 09:34:00 +00:00
Eike Hein
b5ff06d5f8 Backport svn commit 449791
svn path=/trunk/KDE/kdebase/kwin/; revision=449793
2005-08-16 18:41:06 +00:00
Luboš Luňák
3ec72118f2 Some fixes for placement code, so that e.g. placing a dialog
on its mainwindow also still maximizes it if maximizing placement
policy is used.


svn path=/trunk/KDE/kdebase/kwin/; revision=444048
2005-08-08 14:25:41 +00:00
Stephan Kulow
b464518b3c svn merge svn+ssh://coolo@svn.kde.org/home/kde/trunk/KDE/kdebase@438057
svn+ssh://coolo@svn.kde.org/home/kde/branches/work/kde4/kdebase
          .

I couldn't resolve one kicker conflict that results from different
development directions, so I rely on Aaron to sort it out - the file
is commited with conflicts

svn path=/trunk/KDE/kdebase/kwin/; revision=439627
2005-07-28 14:59:42 +00:00
Luboš Luňák
30cab17748 Another final attempt at sorting out the shaded geometry problems.
This time at least the code should detect properly all attempts
to use shaded geometry when the normal one is needed.
BUG: 96602


svn path=/trunk/KDE/kdebase/kwin/; revision=425377
2005-06-14 15:35:44 +00:00
Fred Emmott
b10e8e559b Improved support for xinerama-fullscreen apps
svn path=/trunk/KDE/kdebase/kwin/; revision=423736
2005-06-09 14:40:36 +00:00
Luboš Luňák
da00272012 An attempt to get the crazy shaded windows geometry handling right.
This fixes comment #10 in 96602, I don't know if it fixes as a whole,
but I'm quite sure people will complain again if not.
BUG: 96602


svn path=/trunk/KDE/kdebase/kwin/; revision=423512
2005-06-08 18:07:27 +00:00
Luboš Luňák
5587e43337 Fix last commit.
svn path=/trunk/KDE/kdebase/kwin/; revision=423507
2005-06-08 17:32:19 +00:00
Luboš Luňák
8ef2a46218 Use functions for postponing geometry updates, rather doing
it manually all the time using setGeometry( geometry()).
Needed for getting geometry of the damn shaded windows right
finally.


svn path=/trunk/KDE/kdebase/kwin/; revision=423506
2005-06-08 17:16:53 +00:00
Luboš Luňák
90b92dd290 Temporarily block geometry while (re)setting fullscreen mode, otherwise
updateDecoration() can cause resizing and changing the maximize state.
BUG: 106019


svn path=/trunk/KDE/kdebase/kwin/; revision=417304
2005-05-23 11:43:29 +00:00
Luboš Luňák
e4c84f39e4 Fix usage of PBaseSize and PMinSize in size hints. Makes geometry tip
show proper size for xterm.


svn path=/trunk/KDE/kdebase/kwin/; revision=415390
2005-05-18 13:59:59 +00:00
Luboš Luňák
4bc13d6293 Oops, fix #80545.
svn path=/trunk/KDE/kdebase/kwin/; revision=414893
2005-05-17 08:38:14 +00:00
Luboš Luňák
ced5ab580a Die, window type override, die! Since nobody really knows what this window
type means anyway, let's simply consider it to be a legacy way of saying "noborder"
and nothing more.


svn path=/trunk/KDE/kdebase/kwin/; revision=412372
2005-05-11 14:20:54 +00:00
Luboš Luňák
2322833673 Try to avoid resizing windows due to workarea changes.
BUG: 80545


svn path=/trunk/KDE/kdebase/kwin/; revision=409244
2005-05-04 12:14:34 +00:00
Luboš Luňák
de67ff5bad Update geometry also of NET::Desktop windows e.g. on xrandr resolution changes.
BUG: 103586

svn path=/trunk/kdebase/kwin/; revision=404767
2005-04-11 11:43:20 +00:00
Luboš Luňák
e808718c0a Prefer keeping fixed width when keeping aspect ratio.
BUG: 87298

svn path=/trunk/kdebase/kwin/; revision=393796
2005-02-28 13:44:19 +00:00
Thomas Lübking
90e5b03c31 BUGS:99832
BUGS:99833
BUGS:93380
kompmgr now should get proper window shapes, removing several artefact bugs
just swapping two lines in this file

svn path=/trunk/kdebase/kwin/; revision=393629
2005-02-27 20:49:13 +00:00
Thomas Lübking
05eda26865 added support for unshadowed moving windows, slight changes to updates on shapable windows
svn path=/trunk/kdebase/kwin/; revision=383513
2005-01-28 23:28:11 +00:00
Thomas Lübking
2e82e1fc66 [kompmgr] added option to remove shadows on resizes
svn path=/trunk/kdebase/kwin/; revision=380837
2005-01-21 16:15:05 +00:00
Luboš Luňák
ded2f457b8 Workaround for xterm not coping well with being maximized to a geometry
that's not exact multiple of its resize increments. Selecting obeying
strict geometry in window-specific settings makes KWin avoid this.
Maximization then doesn't work very well indeed, but one cannot please
everybody, and the bug is in xterm after all.
BUG: 94183

svn path=/trunk/kdebase/kwin/; revision=379401
2005-01-17 13:35:48 +00:00
Thomas Lübking
8ad47028f6 Added composite (translucency/shadows) support
svn path=/trunk/kdebase/kwin/; revision=378790
2005-01-15 17:07:48 +00:00
Luboš Luňák
ded2656b03 If a window has configured a specific position using window-specific settings,
don't force it to be entirely in the workarea, as long as at least something
is still visible.

svn path=/trunk/kdebase/kwin/; revision=370319
2004-12-13 11:40:25 +00:00
Luboš Luňák
bb9b3a94c6 Shading fixes. This should also take care of #91615.
BUG: 91615

svn path=/trunk/kdebase/kwin/; revision=367240
2004-11-29 18:46:04 +00:00
Luboš Luňák
ca061ffb57 If a window is resized manually to geometry equal to workspace size,
make it automatically also maximized.

svn path=/trunk/kdebase/kwin/; revision=362476
2004-11-12 17:13:16 +00:00
Luboš Luňák
816f3bd86e Force updating electric borders on resize change.
BUG:92583

svn path=/trunk/kdebase/kwin/; revision=359883
2004-11-02 15:19:01 +00:00
Luboš Luňák
f1145f7bd8 Apply values for 'force' rules to existing windows immediately after
they're created (#89849).

svn path=/trunk/kdebase/kwin/; revision=354752
2004-10-15 14:29:47 +00:00
Luboš Luňák
4e52fbebdc With transparent moving/resizing, make sure the outline is not larger
than the window (#88567).

svn path=/trunk/kdebase/kwin/; revision=348501
2004-09-22 15:09:42 +00:00
Luboš Luňák
1fdde5f129 Ok, it seems there are actually people who really want maximized windows
to be unmovable, and not just have borders hidden in such case (#86847).
Also hacked around the technical problems with maximized windows
not being resizeable and therefore not being considered (un)maximizable.

svn path=/trunk/kdebase/kwin/; revision=341290
2004-08-26 10:34:10 +00:00
Luboš Luňák
e8f6eceba9 Don't resize windows in fullscreen mode.
CCMAIL: 86948-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=338316
2004-08-16 13:59:51 +00:00
Luboš Luňák
20bb0e462c Ignore resize increments and aspect ratios when a window is maximized.
CCMAIL: 86320-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=338314
2004-08-16 13:58:00 +00:00
Luboš Luňák
001646f3d8 Really fix MPlayer. It's nice to see people trust me and nobody has
actually tested MPlayer.

svn path=/trunk/kdebase/kwin/; revision=335441
2004-08-03 09:21:18 +00:00
Luboš Luňák
9ca3abced6 Don't force being inside workarea if the window wasn't inside before.
svn path=/trunk/kdebase/kwin/; revision=334132
2004-07-30 12:01:43 +00:00
George Staikos
8694e51361 trigraph removed
svn path=/trunk/kdebase/kwin/; revision=333257
2004-07-27 14:47:26 +00:00
Luboš Luňák
5979a50bb6 Detect fullscreen hack state even while mapped (MPlayer).
svn path=/trunk/kdebase/kwin/; revision=333175
2004-07-27 08:36:28 +00:00
Luboš Luňák
71224efa77 Better add a remainder for that.
svn path=/trunk/kdebase/kwin/; revision=331402
2004-07-21 08:59:18 +00:00
Luboš Luňák
0eb5c0f87f Fix #85562.
The 'allow moving/resizing of maximized windows' should be renamed
to something like 'hide borders for maximized windows'.

svn path=/trunk/kdebase/kwin/; revision=331401
2004-07-21 08:58:17 +00:00
Luboš Luňák
58e12da8b7 #53420 - don't let normal windows go out of the workarea if they request
it.

svn path=/trunk/kdebase/kwin/; revision=329883
2004-07-16 11:25:07 +00:00
Luboš Luňák
afb63436c5 Even if a window is maximized, it doesn't necessarily mean it can be
always un-maximized.
CCMAIL: 84743-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=329099
2004-07-14 11:49:30 +00:00
Luboš Luňák
89eff51153 I give up with #75436.
svn path=/trunk/kdebase/kwin/; revision=325314
2004-07-02 11:41:25 +00:00
Dominik Haumann
aa98f268bc Fix: snap on resize snapped by 1px wrong on the right and bottom.
Now it works perfectly with all client windows including the desktop.
CCMAIL: 45805@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=323630
2004-06-25 20:26:15 +00:00
Luboš Luňák
5acf67728a The mysterious Override window type strikes once again.
svn path=/trunk/kdebase/kwin/; revision=323538
2004-06-25 12:11:28 +00:00
Luboš Luňák
6e44fc30b8 Autosave for window rules.
svn path=/trunk/kdebase/kwin/; revision=319665
2004-06-11 15:12:29 +00:00
Luboš Luňák
6e34bc5e8a KWin rules for making windows noncloseable, and for changing moveresize
mode.

svn path=/trunk/kdebase/kwin/; revision=318994
2004-06-09 08:33:53 +00:00
Luboš Luňák
ecb4f83baa Another interesting xmms "feature".
CCMAIL: 79499-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=318449
2004-06-07 12:15:36 +00:00
Luboš Luňák
03bdeb94b0 KWin rules setting maximizevert, maximizehoriz, minimize, shade, skiptaskbar,
skippager, fullscreen, noborder.

svn path=/trunk/kdebase/kwin/; revision=317377
2004-06-03 14:09:45 +00:00
Cristian Tibirna
05c003dd28 window and border snapping during resize operations.
Patch contributed by Christopher Suleski (linux from tildewave com): http://bugs.kde.org/show_bug.cgi?id=45805
Many thanks, Christopher.
Code inspected by Lubos Lunak.
Reviewed, slightly adapted and tested by me.
CCMAIL: 45805-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=317353
2004-06-03 12:36:57 +00:00
Luboš Luňák
7eadd6463f KWin rules - position and size.
Forcing position doesn't work yet, and forcing size needs more testing.

svn path=/trunk/kdebase/kwin/; revision=316414
2004-05-31 14:25:25 +00:00
Luboš Luňák
a114e9acc3 KWin rules - override minsize/maxsize.
svn path=/trunk/kdebase/kwin/; revision=316413
2004-05-31 14:15:33 +00:00
Luboš Luňák
b5181ba7f8 No longer necessary to eat paint events during transparent move/resize ?
http://lists.kde.org/?l=kwin&m=108523300632332&w=2

svn path=/trunk/kdebase/kwin/; revision=314043
2004-05-24 09:15:40 +00:00
Xavier Izard
ab428d9ab0 Patch for xinerama mode to allow fullscreens both on one or several screen(s)
svn path=/trunk/kdebase/kwin/; revision=310202
2004-05-10 23:22:27 +00:00
Luboš Luňák
bfc2e69530 So much for clever workarounds.
CCMAIL: 80653-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=307565
2004-04-30 15:12:28 +00:00
Luboš Luňák
23ac6a4381 Initialize values needed for electric borders even in the only-move case.
(#79252).

svn path=/trunk/kdebase/kwin/; revision=304267
2004-04-16 16:17:32 +00:00
Dirk Mueller
ac083a60f8 unbreak compilation
svn path=/trunk/kdebase/kwin/; revision=296457
2004-03-17 02:57:23 +00:00
George Staikos
4b0caa15b3 patch from Lubos for Xinerama movement snapping
CCMAIL: l.lunak@suse.cz

svn path=/trunk/kdebase/kwin/; revision=294555
2004-03-08 22:32:47 +00:00
Luboš Luňák
ff081c36a0 Fix #76394,
svn path=/trunk/kdebase/kwin/; revision=293762
2004-03-05 14:22:11 +00:00
Luboš Luňák
e329c3d872 Use a separate InputOnly window covering whole screen because it
reportedly improves move/resize performance on some systems
for some reason which I fail to see, but oh well.
(http://lists.kde.org/?t=107302193400001&r=1&w=2)

svn path=/trunk/kdebase/kwin/; revision=293755
2004-03-05 13:39:27 +00:00
Luboš Luňák
3575a90230 Avoid -1 as array index.
svn path=/trunk/kdebase/kwin/; revision=290548
2004-02-23 14:20:13 +00:00
Dirk Mueller
1e121b6c94 - fix compiler error
- fix compiler warning

svn path=/trunk/kdebase/kwin/; revision=290440
2004-02-23 03:23:29 +00:00
Luboš Luňák
e7cc4aa974 One more bug in clientArea().
svn path=/trunk/kdebase/kwin/; revision=289117
2004-02-18 18:12:09 +00:00
Luboš Luňák
bf814c45e0 Handle two todo comments from the recent partial struts commit,
and fix a problem with clientArea( WorkArea ) ignoring struts.

svn path=/trunk/kdebase/kwin/; revision=289110
2004-02-18 17:57:57 +00:00
Luboš Luňák
41bcfe70ed With restricted movement, don't require 100 pixels to be visible if
the window is not so wide.
CCMAIL: 71111-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=289074
2004-02-18 16:57:52 +00:00
Luboš Luňák
a483fdeca7 Oops, sorry.
svn path=/trunk/kdebase/kwin/; revision=288956
2004-02-18 09:47:38 +00:00
Otto Bruggeman
f5433a4e1d Compile fix... the for loop can go entirely...
CCMAIL: l.lunak@suse.cz

svn path=/trunk/kdebase/kwin/; revision=288868
2004-02-17 22:31:45 +00:00
Peter Rockai
2eb784cf35 Support for NETWM partial struts (_NET_WM_STRUT_PARTIAL, we call them
extended here, ask Lubos why :>). This patch also includes workaround
for kicker (in its current state, without extended-strut support), so it
works in xinerama setups as expected. Thanks go to Lubos for help with
implementation and for review.

svn path=/trunk/kdebase/kwin/; revision=288758
2004-02-17 17:34:00 +00:00
Luboš Luňák
22e7409160 Revert r2.51. Tk is either too stupid to see a difference between normal
and synthetic configure events, or it's too paranoid to trust the normal
ones.
CCMAIL: 75167-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=287782
2004-02-13 17:29:56 +00:00
Luboš Luňák
0a283ed773 Oops, I broke cancelling fullscreen from Alt+F3.
svn path=/trunk/kdebase/kwin/; revision=286754
2004-02-10 11:46:46 +00:00
Luboš Luňák
714d3fcd6c If e.g. the titlebar is already outside of the workarea, there's no point in performing
a restricted move/resize, because then e.g. resize would also move the window (#74555).

svn path=/trunk/kdebase/kwin/; revision=286537
2004-02-09 18:09:01 +00:00
Luboš Luňák
b525af029e Avoid sending synthetic configure notify events with user moving/resizing
when a real one will be sent.

svn path=/trunk/kdebase/kwin/; revision=284785
2004-02-03 15:18:15 +00:00
Luboš Luňák
10405ee978 Optimize MotionNotify discarding while moving/resizing.
svn path=/trunk/kdebase/kwin/; revision=284784
2004-02-03 15:16:58 +00:00
Luboš Luňák
8d00434917 Don't disallow fullscreening for windows that have maximum size set,
way too many apps apparently think setting a maximum or fixed size
and then requesting fullscreen is ok.
CCMAIL: 73509-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=284486
2004-02-02 14:15:31 +00:00
Luboš Luňák
e5d6fb447d Fix non-NETWM fullscreen applications.
CCMAIL:71825-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=281054
2004-01-19 15:07:14 +00:00
Luboš Luňák
24cae23c66 Fix Xinerama placement. Thanks to Malte S. Stretz for help with debugging
and testing.

svn path=/trunk/kdebase/kwin/; revision=278437
2004-01-10 15:13:23 +00:00
Luboš Luňák
c1d1b6289f Make sure there aren't two windows given focus with the same X timestamp,
because if one timestamp is reused for activating window A and then
immediatelly window B, and A will want to set focus to one
of its subwindows after receiving WM_TAKE_FOCUS, and will lag a bit,
it will actually set the focus after B, and will win. Fixes #71704.

If somebody still gets the warning, I'd be interested in the backtrace.

svn path=/trunk/kdebase/kwin/; revision=278208
2004-01-09 17:35:21 +00:00
Luboš Luňák
59fa15a185 Read correctly original size when doing partial unmaximalization.
CCMAIL: 68106-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=278167
2004-01-09 15:32:37 +00:00
Luboš Luňák
3969e69d23 Oops. Once again, now it compiles.
svn path=/trunk/kdebase/kwin/; revision=274323
2003-12-22 10:47:47 +00:00
Anne-Marie Mahfouf
11b288081c I guess someone had to try to fix it so here am I
hope I did right

svn path=/trunk/kdebase/kwin/; revision=274083
2003-12-20 23:54:25 +00:00
Luboš Luňák
45f26c3985 Apparently one needs to be clever when dealing with stupid things (part of #70623).
svn path=/trunk/kdebase/kwin/; revision=273901
2003-12-19 18:19:27 +00:00
Luboš Luňák
569224d117 Replace the temporary MousePosition enum naming with something that
doesn't look so silly and doesn't conflict with Qt.

svn path=/trunk/kdebase/kwin/; revision=273144
2003-12-15 15:10:17 +00:00
Luboš Luňák
9326a7f008 Fix #69787 - off-by-one error when checking top position.
CCMAIL: 69787-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=271907
2003-12-08 12:50:32 +00:00
Luboš Luňák
c151780247 Fix #69721. Also, set the move cursor before input grabs, so the grab
uses the new cursor.

svn path=/trunk/kdebase/kwin/; revision=271904
2003-12-08 12:42:18 +00:00
Luboš Luňák
0ba12a0837 Perform whole new window managing with X server grab, in order to prevent
"smart" apps from doing stupid things before they get MapNotify.
This avoids the recent Java+OracleInstaller strange problem too.
The patch may look huge, but it's only adding two KWin wrappers
for X(Un)GrabServer() and uncommenting the calls in Client::manage().

svn path=/trunk/kdebase/kwin/; revision=271152
2003-12-04 13:54:10 +00:00
Luboš Luňák
0cf7454675 And eventually user moving/resizing seems to work, even with aspect ratios.
When moving/resizing, first do the operation unconstrained, then snap
(now it should be even simple to implement snapping while resizing),
then check workarea bounds and finally check constrains, while keeping
the respective fixed order for the resize operation at the same position.
Also geometry() -> initialMoveResizeGeometry, as geometry() may change
with opaque move/resize.

svn path=/trunk/kdebase/kwin/; revision=269301
2003-11-24 14:31:02 +00:00
Luboš Luňák
fde7aedf9c Removed duplication of code.
svn path=/trunk/kdebase/kwin/; revision=269300
2003-11-24 14:30:31 +00:00
Luboš Luňák
3768a7f31f I apparently didn't comprehend the user move/resize code, otherwise
I wouldn't have added something that was there already.

svn path=/trunk/kdebase/kwin/; revision=269299
2003-11-24 14:29:57 +00:00
Luboš Luňák
4cc6229be3 *sigh*, how can somebody name variables for topleft and bottomright corners pp and p?
This code is not easy to understand even without meaningless names.

svn path=/trunk/kdebase/kwin/; revision=269298
2003-11-24 14:26:58 +00:00
Luboš Luňák
2c3f9c4069 Some attempts to fix aspect ratios breaking resizing.
When resizing windows manually (Client::handleMoveResize()) still doesn't work.

svn path=/trunk/kdebase/kwin/; revision=269296
2003-11-24 14:26:11 +00:00
Luboš Luňák
2553476f53 Don't require both mouse and keyboard grab for move/resize,
one of them is enough. Allows resising of the configure shortcut
dialog.

svn path=/trunk/kdebase/kwin/; revision=269294
2003-11-24 14:25:33 +00:00
Luboš Luňák
162c76cf46 Reset Client::buttonDown if startMoveResize() failed
due to not being able to grab input. Visible with
resizing the shortcut configure dialog, which has grab.

svn path=/trunk/kdebase/kwin/; revision=269293
2003-11-24 14:24:34 +00:00
Luboš Luňák
d46c7413c4 Hopefully final fixes for topmenus managed by KWin to work (#66152).
Written by Schizo, reviewed by Frenia. As it was broken anyway, I don't
think this can break it more.

svn path=/trunk/kdebase/kwin/; revision=266813
2003-11-13 14:34:05 +00:00
Luboš Luňák
1d71c9839b Reserve space for topmenus, so there's no flicker, and the space is taken
even with no topmenu shown. Support topmenus only when enabled in kdeglobals.

svn path=/trunk/kdebase/kwin/; revision=266531
2003-11-12 09:47:13 +00:00
Luboš Luňák
07b08d5d99 Don't use struts if KWin itself restricts workarea size by topmenus.
svn path=/trunk/kdebase/kwin/; revision=266150
2003-11-10 18:08:04 +00:00