Commit graph

197 commits

Author SHA1 Message Date
Luboš Luňák
06e47c10db Remove the temporary hacks again.
svn path=/branches/work/kwin_composite/; revision=558185
2006-07-04 20:32:43 +00:00
Luboš Luňák
157372f2e7 And add a silly moving-in animation for new windows.
Now it's time to add plugins interface so that people who can
do this for real do it.


svn path=/branches/work/kwin_composite/; revision=558173
2006-07-04 20:07:58 +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
78715e20e3 Allow activation from session if there was user activity
but there's no active window.


svn path=/trunk/KDE/kdebase/workspace/; revision=547674
2006-06-02 22:47:04 +00:00
Luboš Luňák
750d4f1d03 #67406 - config option kwinrc:Windows:ShowDesktopIsMinimizeAll.
But I hope this actually won't be needed with KDE4.


svn path=/trunk/KDE/kdebase/workspace/; revision=546548
2006-05-30 11:47:16 +00:00
Luboš Luňák
daf4e723ea Save also stacking order when doing session save.
svn path=/trunk/KDE/kdebase/workspace/; revision=531882
2006-04-20 14:57:10 +00:00
Luboš Luňák
b7d19892d3 Don't deactivate the showing desktop state when a new window is shown
that belongs to the desktop (#113552).


svn path=/trunk/KDE/kdebase/workspace/; revision=528392
2006-04-10 22:11:44 +00:00
Laurent Montel
8a3b3987f4 Deprecated--
svn path=/trunk/KDE/kdebase/workspace/; revision=519636
2006-03-17 18:18:20 +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
Allen Winter
ae65a40c7a TRUE->true, FALSE->false
svn path=/trunk/KDE/kdebase/workspace/; revision=511180
2006-02-19 01:33:48 +00:00
Luboš Luňák
0dffb60c1f When updating a user timestamp of a window, also always update timestamp
of the whole group (#75175).


svn path=/trunk/KDE/kdebase/workspace/; revision=500576
2006-01-20 15:49:03 +00:00
Laurent Montel
a48328e5bc QString::null->QString()
.clear()
etc

svn path=/trunk/KDE/kdebase/workspace/; revision=493536
2006-01-02 16:27:55 +00:00
Laurent Montel
0370410f0f qt3support--
svn path=/trunk/KDE/kdebase/workspace/; revision=474743
2005-10-27 09:07:06 +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
3fb4801635 Ignore requested position -> geometry.
svn path=/trunk/KDE/kdebase/kwin/; revision=444049
2005-08-08 14:27:03 +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
39388e4aeb No idea what this setShapable() stuff is, but it certainly
doesn't belong to detectNoBorder().
CCMAIL: thomas.luebking@web.de


svn path=/trunk/KDE/kdebase/kwin/; revision=428551
2005-06-24 15:22:34 +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
20f80af287 Make it possible to use the window-specific settings dialog
to also set some things only temporarily. E.g. in order
to set skiptaskbar flag on a window, it's just
Alt+F3/Advanced/Special Window Settings/Preferences ->
Apply Now for Skip taskbar, and turn on the checkbox.


svn path=/trunk/KDE/kdebase/kwin/; revision=423112
2005-06-07 15:31:15 +00:00
Luboš Luňák
5722d3fac8 Implement _NET_SHOWING_DESKTOP, giving control of the 'show desktop'
feature to KWin. There shouldn't hopefully be any visible user
difference other than fixed bugs.
BUG: 78109
BUG: 99524


svn path=/trunk/KDE/kdebase/kwin/; revision=413066
2005-05-13 08:57:21 +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
98aaf1ee02 Fix last commit and remove the old code.
svn path=/trunk/kdebase/kwin/; revision=405106
2005-04-12 17:44:05 +00:00
Luboš Luňák
e1fb4aa2b6 Move all code responsible for showing/hiding windows, setting mapping
state, NET::Hidden etc. to one function: Client::updateVisibility().

svn path=/trunk/kdebase/kwin/; revision=405104
2005-04-12 17:22:47 +00:00
Luboš Luňák
240fc84c05 Avoid unnecessary roundtrips finding out WM_CLIENT_MACHINE when setting
caption.

svn path=/trunk/kdebase/kwin/; revision=387096
2005-02-07 14:35:53 +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
Luboš Luňák
855786a987 Giving up on #78082, at least temporarily. Don't force using placement
policy for dialogs if they request a specific geometry. Too bad apps
always specify geometry for dialogs, so if they specify silly positions
like under mouse or centered on the screen the only solution for now
is choosing ignoring requested position in window-specific settings.
BUG: 78082

svn path=/trunk/kdebase/kwin/; revision=382906
2005-01-27 14:21:31 +00:00
Luboš Luňák
07203ba5b6 Window-specific rules for dynamic windows shortcuts, so that it's
possible to always have certain shortcuts assigned to their windows
if such windows are open. Still few TODO items left, but let's consider
it enough for #44268 to be marked as done.
FEATURE: 44268

svn path=/trunk/kdebase/kwin/; revision=379444
2005-01-17 15:53:14 +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
65c3b55e05 Revert last revert, dynamic keybidings are back in.
svn path=/trunk/kdebase/kwin/; revision=377118
2005-01-10 09:56:21 +00:00
Luboš Luňák
c7d0776f01 Revert last changes because of temporary freeze.
svn path=/trunk/kdebase/kwin/; revision=375467
2005-01-04 14:57:42 +00:00
Luboš Luňák
83e4a1d222 Save window shortcut also in session.
svn path=/trunk/kdebase/kwin/; revision=375459
2005-01-04 14:27:15 +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
a6fa4609c2 Reoder how the initial virtual desktop placement is considered.
For dialogs prefer placing together with mainwindow to data
from startup notification (happens with kio_uiserver dialogs).

svn path=/trunk/kdebase/kwin/; revision=360448
2004-11-04 18:32:30 +00:00
Luboš Luňák
8255bc2749 Client::isManaged() should not be true before it's added to the client
list :(. At least work around a possible desktop switching and invisible
window because of this.

svn path=/trunk/kdebase/kwin/; revision=360436
2004-11-04 17:56:05 +00:00
Luboš Luňák
7e4f0508cf Don't apply strict placement policy to dialogs without any parent at all.
(for kdialog --geometry etc.).

svn path=/trunk/kdebase/kwin/; revision=341782
2004-08-27 12:24:30 +00:00
Luboš Luňák
5ac4a74f2f Don't try to focus new modal for the active window while the new modal
is still in manage(). Should fix first-time showing of kwallet dialog.

svn path=/trunk/kdebase/kwin/; revision=335960
2004-08-04 12:19:50 +00:00
Luboš Luňák
83ff00f572 Don't restrict already mapped or session restored window geometries
to the workarea.

svn path=/trunk/kdebase/kwin/; revision=334124
2004-07-30 11:36:47 +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
8033d09cce Dynamically detect changes of Motif hints instead of just reading
them once initially. At least MPlayer changes them while mapped.

svn path=/trunk/kdebase/kwin/; revision=333174
2004-07-27 08:35:51 +00:00
Luboš Luňák
3b51402792 Don't try to remember settings for a window that's not yet fully setup.
svn path=/trunk/kdebase/kwin/; revision=331189
2004-07-20 14:35:33 +00:00
Luboš Luňák
682a6aa28f Move desktop range check to the proper place.
svn path=/trunk/kdebase/kwin/; revision=331188
2004-07-20 14:29:28 +00:00
Luboš Luňák
6060ceb9eb Keep window role as lowercase, just like wmclass, for rules matching.
svn path=/trunk/kdebase/kwin/; revision=324251
2004-06-28 13:47:02 +00:00
Luboš Luňák
c6a91d80ba KWin rules - obey/disobey given position.
svn path=/trunk/kdebase/kwin/; revision=322443
2004-06-21 12:38:40 +00:00
Luboš Luňák
094befa1de Make it possible to have several rules matching one window.
svn path=/trunk/kdebase/kwin/; revision=321637
2004-06-18 08:57:42 +00:00
Luboš Luňák
5085b40285 Fix activation of window that was active at session saving time.
svn path=/trunk/kdebase/kwin/; revision=319667
2004-06-11 15:13:08 +00:00
Luboš Luňák
7e35926c37 Make no focus stealing prevention really do nothing, and change
the rule for it to specify new level instead of adjustment.

svn path=/trunk/kdebase/kwin/; revision=319664
2004-06-11 15:12:07 +00:00
Luboš Luňák
0f972d789f Instead of snatching the window temporarily from kwin simply tell kwin
what to do with it. I've never liked this hack much, and this should
also take care of #49375, and should make sure kstart options will
have higher priority than settings configured in kwin.

svn path=/trunk/kdebase/kwin/; revision=319662
2004-06-11 15:10:09 +00:00
Luboš Luňák
319f8bf67a Read modality flag before handling groups (for #82648).
svn path=/trunk/kdebase/kwin/; revision=317399
2004-06-03 16:16:27 +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
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
ab8ff46877 Forcing of a specific window type.
svn path=/trunk/kdebase/kwin/; revision=315469
2004-05-28 15:04:01 +00:00
Luboš Luňák
8e09a9bc22 I guess I could finally find some time to work on things for 3.3.
Initial work on kwin rules, i.e. #36377 , per window specific settings.
So far only desktop/above/below work, no GUI, and settings from the old
'Save window settings' are ignored for now.

svn path=/trunk/kdebase/kwin/; revision=315446
2004-05-28 13:51:11 +00:00
Luboš Luňák
d551f871fb Prefer the newer way of getting startup timestamp from the ASN startup id.
svn path=/trunk/kdebase/kwin/; revision=314706
2004-05-26 09:24:14 +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
854e9cc05a With windows that have are listed for the focus stealing prevention
workaround, don't make their user timestamp newer than the active window's
one (unless a real user activity takes place in them).
As they are belong to the active application and just fail to say so,
this makes sure they won't prevent that application from getting focus
by having newer timestamp. E.g. Alt+F2, typing URL, kio_uiserver dialog
shows (has workaround), SSL certificate dialog shows (shown by kdesktop),
and it wouldn't get focus, because kio_uiserver's timestamp would be later.

svn path=/trunk/kdebase/kwin/; revision=298357
2004-03-24 19:05:49 +00:00
Luboš Luňák
108d73625a A workaround for #70943 until xinerama placement works properly with
windows that request a specific position.

svn path=/trunk/kdebase/kwin/; revision=297855
2004-03-22 16:39:58 +00:00
Luboš Luňák
8a9738e02f This looks strange, whatever this is supposed to do. And if it's
"compile fixes for FreeBSD", then I'm a kangaroo.

svn path=/trunk/kdebase/kwin/; revision=295165
2004-03-11 12:59:55 +00:00
Luboš Luňák
648fb3ed22 Avoid minimize animation when a newly managed window requests to be
initially minimized.

svn path=/trunk/kdebase/kwin/; revision=292900
2004-03-01 18:00:07 +00:00
Luboš Luňák
aee628e008 Fix #76408 - do range checking on _NET_WM_DESKTOP values.
CCMAIL: 76408-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=292889
2004-03-01 17:20:19 +00:00
Luboš Luňák
96cc95943a Fix #72074 - when trying to close a window, update user timestamp
on the whole group, so that the possible 'close?' dialog has a recent
timestamp even if the window about to be closed wasn't active.

svn path=/trunk/kdebase/kwin/; revision=291859
2004-02-27 13:35:09 +00:00
Luboš Luňák
d2e94b988e Watch properties also on the group leader window, for now only
the startup notification property, but it could be extended
to read icons etc. as well if needed (ICCCM 4.1.2.7).

svn path=/trunk/kdebase/kwin/; revision=291218
2004-02-25 09:51:47 +00:00
Luboš Luňák
3abd0ebdf0 Oops. Qt3.2 used to set resource class in WM_CLASS all lowercase, but
Qt3.3 capitalizes it (part of my own patch IIRC, hehe :-/), so all
the workarounds for specific apps no longer work -> force resource class
to be always lowercase.

svn path=/trunk/kdebase/kwin/; revision=290521
2004-02-23 12:47:28 +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
ef5340d6b9 Don't force windows to be inside workarea if their geometry comes
from session restoration or if the window is already mapped.
CCMAIL: 74057-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=286752
2004-02-10 11:45:00 +00:00
Luboš Luňák
42e26ff608 Use WM_CLIENT_LEADER for grouping if a window is group transient
but has no group set. This should take care of comment #20 in #69519.

svn path=/trunk/kdebase/kwin/; revision=285366
2004-02-05 18:16:53 +00:00
Luboš Luňák
e519c91eea Disable xinerama placement when session restoring.
svn path=/trunk/kdebase/kwin/; revision=281487
2004-01-21 08:46:32 +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
6dea573226 Ignore special windows for placement/desktop, breaks with standalone
menubar.

svn path=/trunk/kdebase/kwin/; revision=279905
2004-01-15 14:30:02 +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
b2b86e00e9 Remove duplicated and scary code.
svn path=/trunk/kdebase/kwin/; revision=273128
2003-12-15 13:36:27 +00:00
Fredrik Höglund
0f1aecf06b Make sure that the right visual is used for the frame when embedding
an ARGB window.

Reviewed by Seli and Keith Packard.

svn path=/trunk/kdebase/kwin/; revision=272507
2003-12-11 17:41:47 +00:00
Luboš Luňák
2488a7c674 Add some stuff that should be most probably done but I'm afraid to do
it now in the freeze.

svn path=/trunk/kdebase/kwin/; revision=272282
2003-12-10 11:28:31 +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
897e67f79a Partially revert the recent xinerama commit - !isMapped == useCursorPos
was always true, no need for another argument.

svn path=/trunk/kdebase/kwin/; revision=269308
2003-11-24 15:05:50 +00:00
George Staikos
875fc62836 Reimplement Xinerama placement. Patch from Balaji Ramani.
CCMAIL: balaji@yablibli.com

svn path=/trunk/kdebase/kwin/; revision=268719
2003-11-21 23:00:38 +00:00
Luboš Luňák
064f1538c8 Hmm, ok, I give up. Check only for IconicState in initial mapping state,
treat all the other strange states as NormalState. Fixes WMaker applets.
CCMAIL: 68069-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=268438
2003-11-20 16:25:52 +00:00
Luboš Luňák
d2c1750fa9 Fix #67072 and all its dupes.
svn path=/trunk/kdebase/kwin/; revision=264456
2003-11-04 10:53:04 +00:00
Luboš Luňák
d45a853dd4 Fixes related to shown shaded windows.
svn path=/trunk/kdebase/kwin/; revision=257726
2003-10-10 13:00:01 +00:00
Luboš Luňák
7f30475e40 Read initial states of windows.
svn path=/trunk/kdebase/kwin/; revision=257725
2003-10-10 12:59:40 +00:00
Luboš Luňák
34fa4a4399 Cleanup of Xinerama handling. I don't claim I actually fixed something,
but at least now the code doesn't look like uncommented random something.
And who knows, maybe I even fixed it ;).

CCMAIL: staikos@kde.org

What the hell does "Show unmanaged windows on:" mean in the kcm dialog?

svn path=/trunk/kdebase/kwin/; revision=257723
2003-10-10 12:58:38 +00:00
Luboš Luňák
b95ee3bbb1 Obey motif hints only from apps that don't support the NETWM spec, as
those should set window type, and should not be stupid.
Actually the reason for this change is OO setting the no-resize Motif hint,
and requesting that the WM fullscreens the window, which, guess what, means
resizing the window, but this makes sense in general.

svn path=/trunk/kdebase/kwin/; revision=257177
2003-10-08 09:33:15 +00:00
Luboš Luňák
ee848958b3 Make a difference between fake session data ('save window settings')
and real SM session data.

svn path=/trunk/kdebase/kwin/; revision=256749
2003-10-06 14:19:06 +00:00
Luboš Luňák
cb51d8ebd6 Another minicli focus stealing prevention fix, this time for David.
svn path=/trunk/kdebase/kwin/; revision=255682
2003-10-02 14:38:17 +00:00
Luboš Luňák
52b2452085 Catch all events related to clients, even if they're not e->xany.window .
svn path=/trunk/kdebase/kwin/; revision=255661
2003-10-02 12:33:51 +00:00
Luboš Luňák
08bb12efcf If a windows tries to grow larger than the workarea, don't allow it to
do so, if size constraints allow it.
If resizing a window would make it get partially out of workarea,
move it so that it stays in workarea.

svn path=/trunk/kdebase/kwin/; revision=255616
2003-10-02 08:57:17 +00:00
Luboš Luňák
3e1df92066 Try to place dialogs on their mainwindow. Except for non-NETWM apps
where the it's transient therefore it's a dialog assumption is not true
often enough for this to be annoying.

svn path=/trunk/kdebase/kwin/; revision=255614
2003-10-02 08:56:44 +00:00
Luboš Luňák
6f272da774 Revert special dialog placement policies. I don't think I need to go
that far with overconfigurability.

svn path=/trunk/kdebase/kwin/; revision=255440
2003-10-01 16:51:19 +00:00
Luboš Luňák
74536fc72c Oops, mainClients() returns a temporary (just like if its comment didn't
say so ...). Fixes #65297.

svn path=/trunk/kdebase/kwin/; revision=255416
2003-10-01 15:46:23 +00:00
Luboš Luňák
bd4789e32b Looks like I got window gravities working correctly also for configure requests.
CCMAIL: 64981-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=255356
2003-10-01 12:10:22 +00:00
Luboš Luňák
dcb2349a19 Fix #64769.
CCMAIL:64769-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=253884
2003-09-25 15:36:10 +00:00
Luboš Luňák
124dd73f49 This should fix #64869 - make sure the user timestamp is valid at the end
of manage().
CCMAIL: 64869-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=253667
2003-09-24 18:31:30 +00:00
Luboš Luňák
d8406cf439 Cleanup of Motif hints. Ignore hints forbidding minimize/maximize.
Fix using isResizable()/isMovable() instead of only checking the Motif hint.

svn path=/trunk/kdebase/kwin/; revision=252351
2003-09-19 11:14:16 +00:00
Luboš Luňák
d5dd99ba82 Ensure that KDecoration::width() etc. and KDecoration::widget()->width are
in sync.

svn path=/trunk/kdebase/kwin/; revision=252350
2003-09-19 11:13:24 +00:00
Luboš Luňák
10f405c73d Merging kwin core from kwin_iii back to HEAD.
svn path=/trunk/kdebase/kwin/; revision=251608
2003-09-16 19:28:03 +00:00