Commit graph

34 commits

Author SHA1 Message Date
Luboš Luňák
47075ef04e Break unnecessary transiency relations caused by many group transient windows.
Avoids exponentially expensive operations in KWin.
CCBUG: 95231

svn path=/trunk/kdebase/kwin/; revision=393793
2005-02-28 13:43:00 +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
37f682c907 Handle a rather unusual usage KMenuBar usage in amarok - parent widget
is first created toplevel, then reparented to become one tab widget.
CCMAIL: 81620-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=333232
2004-07-27 13:13:52 +00:00
Luboš Luňák
c2fa4013a2 WM_CLASS can be matched whole (class+name) or only class
Added client machine to matched properties.

svn path=/trunk/kdebase/kwin/; revision=315449
2004-05-28 13:54:20 +00:00
Luboš Luňák
80624445c9 addTransient() may temporary cause loops, so delay calling of findModal()
until they're broken

svn path=/trunk/kdebase/kwin/; revision=315405
2004-05-28 11:33:36 +00:00
Luboš Luňák
1fc08d271f No need it do it twice.
svn path=/trunk/kdebase/kwin/; revision=315373
2004-05-28 09:57:07 +00:00
Luboš Luňák
598c604fb6 Make sure splashscreens stay on top of other windows in the app.
svn path=/trunk/kdebase/kwin/; revision=314694
2004-05-26 08:47:37 +00:00
Luboš Luňák
d373e84e3a Fix fix for #77341.
svn path=/trunk/kdebase/kwin/; revision=307278
2004-04-29 14:13:08 +00:00
Luboš Luňák
bc8e0805a7 This should fix #77341 (fingers crossed), group transients without apps specifying
the group for windows.

svn path=/trunk/kdebase/kwin/; revision=307170
2004-04-29 09:43:01 +00:00
Luboš Luňák
43ed3b4fa5 Fix #78856.
CCMAIL: 78856-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=304870
2004-04-19 11:37:48 +00:00
Luboš Luňák
9a0f2b6e9b When the active window gets a modal dialog, activate the modal. Happens
with kwalletmanager and the wallet open dialog.

svn path=/trunk/kdebase/kwin/; revision=298549
2004-03-25 16:24:56 +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
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
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
bcd0bb4113 Fix finding of mainwindows.
svn path=/trunk/kdebase/kwin/; revision=272430
2003-12-11 09:09:38 +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
78b84121d7 Make group transients transient only for windows in the same group that
were mapped before it, not for new ones. This greatly minimizes
the posibility of loops and avoids all those problems in #67914
causes by so many dialogs not having their parent specified.

svn path=/trunk/kdebase/kwin/; revision=272281
2003-12-10 11:27:20 +00:00
Luboš Luňák
74741dee7e The change done in r2.9 made the test for two windows belonging to the same
app too restrictive, now it fails e.g. with xmms equivalizer and playlist.

svn path=/trunk/kdebase/kwin/; revision=270836
2003-12-02 18:11:24 +00:00
Luboš Luňák
8f181d8b52 checkGroupTransients() uses hasTransient() to break loops, so it must detect them,
fixes #69094

svn path=/trunk/kdebase/kwin/; revision=269892
2003-11-27 14:37:55 +00:00
Luboš Luňák
fe0ab6d200 Avoid making windows transient to themselves.
Don't worry about creating loops with group transients, checkGroupTransients()
will check for them and has better chances to break them correctly.

svn path=/trunk/kdebase/kwin/; revision=269292
2003-11-24 14:24:04 +00:00
Luboš Luňák
225f12f1d3 Attempt number 3251 at finally fixing #67914. This window grouping
will have to be reworked for 3.3.

svn path=/trunk/kdebase/kwin/; revision=268607
2003-11-21 14:05:20 +00:00
Luboš Luňák
b2b60d647f Change Client::checkGroupTransients() to really do what it's supposed to do,
including indirect transiency.
Should finally fix #67914 and all its dupes.

svn path=/trunk/kdebase/kwin/; revision=268157
2003-11-19 12:10:48 +00:00
Luboš Luňák
0fb3d41e26 If two windows are the same, they belong to the same application.
Second part for #68553.

svn path=/trunk/kdebase/kwin/; revision=268142
2003-11-19 10:44:36 +00:00
Luboš Luňák
e7c55a0c89 Ouch ... thanks to Ossi for noticing.
svn path=/trunk/kdebase/kwin/; revision=266865
2003-11-13 18:27:31 +00:00
Luboš Luňák
33e9753f6b If windows don't have _NET_WM_PID set, don't rely on pid1==pid2 when
finding out if they're the same app.
CCMAIL: 68087-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=266853
2003-11-13 17:19:49 +00:00
Luboš Luňák
6c3176c74c Avoid transient loops with group transients.
CCMAIL: 67914-done@bugs.kde.org

svn path=/trunk/kdebase/kwin/; revision=266527
2003-11-12 09:02:37 +00:00
Luboš Luňák
70645a691a When a new window appears in a group, make sure group transients are
transient for it.

svn path=/trunk/kdebase/kwin/; revision=266151
2003-11-10 18:08:59 +00:00
Luboš Luňák
3a23e0775d Fix focus stealing prevention for XV, just in case Coolo sometimes decides
to run it again.

svn path=/trunk/kdebase/kwin/; revision=261527
2003-10-24 09:00:40 +00:00
Luboš Luňák
80376961fc More debug output.
svn path=/trunk/kdebase/kwin/; revision=254812
2003-09-29 11:20:12 +00:00
Luboš Luňák
8a11c2ff74 Fix transiency loop with WM_TRANSIENT_FOR poiting to itself (e.g. with
ssh-askpass), and put the Only True assert() (TM) back.

svn path=/trunk/kdebase/kwin/; revision=253636
2003-09-24 16:56:49 +00:00
David Faure
d9066553de KWin crashing on every KDE startup isn't fun.... Some info:
kdeinit: kwin -session 110a000002000106431633100000023760005_1064355176_942460: /mnt/devel/kde/kdecvs/kdebase/kwin/group.cpp:537: void KWinInternal::Cli
ent::addTransient(KWinInternal::Client*): Assertion `cl != this' failed.
(the debug output before that includes a backtrace to _ZN12KWinInternal9Workspace21allowClientActivationEPKNS_6ClientEmbb

#7  0x4141c745 in __assert_fail ()
#8  0x4157fdea in KWinInternal::Client::addTransient(KWinInternal::Client*) ()
#9  0x4157f211 in KWinInternal::Client::setTransient(unsigned long) ()
#10 0x4157feda in KWinInternal::Client::checkTransient(unsigned long) ()
#11 0x4157e7dd in KWinInternal::Workspace::checkTransients(unsigned long) ()
#12 0x415538f2 in KWinInternal::Workspace::addClient(KWinInternal::Client*, KWinInternal::allowed_t) ()
#13 0x415536e4 in KWinInternal::Workspace::createClient(unsigned long, bool) ()
#14 0x415721f5 in KWinInternal::Workspace::workspaceEvent(_XEvent*) ()

svn path=/trunk/kdebase/kwin/; revision=253509
2003-09-24 08:23:39 +00:00
Luboš Luňák
1e61c406f9 Temporary fix for #64516.
svn path=/trunk/kdebase/kwin/; revision=252394
2003-09-19 14:53:39 +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