Commit graph

196 commits

Author SHA1 Message Date
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