Bug 25020 - Kwm: 2 second delay deiconifing in Tcl/Tk
Summary: Kwm: 2 second delay deiconifing in Tcl/Tk
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 28857 (view as bug list)
Depends on:
Blocks:
 
Reported: 2001-05-01 03:48 UTC by mskaarupj
Modified: 2003-07-31 20:34 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description mskaarupj 2001-05-01 03:38:28 UTC
(*** This bug was imported into bugs.kde.org ***)

Package:           kwm
Version:           unknown (using KDE 2.1.0 )
Severity:          normal
Installed from:    SuSE
Compiler:          gcc version 2.95.2 19991024 (release)
OS:                Linux 2.2.14 i686
OS/Compiler notes: 

Same bug as reported by Giorgos Petasis:
 1109-close at bugs.kde.org 1349-close at bugs.kde.org

The bug still exists in KDE 2.1

Deiconifying a window is delayed 2 seconds. The following script illustrates this: it takes about 20 seconds to execute while it only takes a fraction of a second on all other windowmanagers that I have tried. Jeff Hobbs jeffh@activestate.com knows more.


#!/usr/bin/wish
regexp {^([1234567890])+} [time {raise .} 10] us
puts "[expr $us * 10 / 1000000.0] seconds Tcl/Tk $tcl_patchLevel \
        $tcl_platform(os) $tcl_platform(osVersion) $tcl_platform(machine) \
        $tcl_platform(platform)"
exit


(Submitted via bugs.kde.org)
(Called from KBugReport dialog)
Comment 1 Bugzilla Maintainers 2002-08-30 02:00:57 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
Comment 2 John Firebaugh 2002-09-22 07:11:33 UTC
*** Bug 28857 has been marked as a duplicate of this bug. ***
Comment 3 Lubos Lunak 2003-07-31 20:34:05 UTC
I have removed the if() , so I consider this bug fixed. A bit late, but still.