Summary: | Kwm: 2 second delay deiconifing in Tcl/Tk | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | mskaarupj |
Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nathalie.viollet |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
mskaarupj
2001-05-01 03:38:28 UTC
Here's the cause of the problem: According to the ICCCM [section 4.1.5 "Configuring the Window"] window managers should respond with a ConfigureNotify whenever the client makes a ConfigureRequest to change the position size border width *or stacking order* (regardless of whether the change is actually carried out). Tk currently waits for a ConfigureNotify whenever it raises or lowers a window but KWIN is only sending synthetic ConfigureNotify's for position and size changes. See <URL: http://purl.org/tcl/tip/107.html > for a full description of the problem from Tk's end. This will (hopefully) be fixed in Tk 8.4. On the KWIN side the following patch should fix the problem for earlier Tcl/Tk releases: -- Cut here -- Index: kwin/client.cpp =================================================================== RCS file: /home/kde/kdebase/kwin/client.cppv retrieving revision 1.304 diff -u -r1.304 client.cpp --- kwin/client.cpp25 Aug 2002 01:04:42 -00001.304 +++ kwin/client.cpp30 Aug 2002 01:46:03 -0000 @@ -12797 +12797 @@ } } - if ( e.value_mask & (CWX | CWY | CWWidth | CWHeight ) ) + if ( e.value_mask & (CWX | CWY | CWWidth | CWHeight | CWStackMode ) ) sendSyntheticConfigureNotify(); return TRUE; } -- Cut here -- Hm... or maybe a better approach is to remove the 'if (e.value_mask & ...' qualifier altogether since the only other relevant flags are CWSibling (which implies CWStackMode) and CWBorderWidth (and you're supposed to send ConfigureNotify's for those too.) --Joe English jenglish@flightlab.com *** Bug 28857 has been marked as a duplicate of this bug. *** I have removed the if() , so I consider this bug fixed. A bit late, but still. |