Bug 68069 - kwinmodule won't raise "windowAdded" signal for some windows (breaks the dockbar extension)
Summary: kwinmodule won't raise "windowAdded" signal for some windows (breaks the dock...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-12 21:54 UTC by julien pommier
Modified: 2003-11-20 17:26 UTC (History)
0 users

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 julien pommier 2003-11-12 21:54:03 UTC
Version:            (using KDE KDE 3.1.93)
Installed from:    Compiled From Sources
OS:          Linux

The dockbar kicker extension uses the windowAdded signal from kwinmodule in order to embed "windowmaker" dock applets. But now (since kwin became netwm compliant?), some dockapps do not seem to trigger anymore this signal. For example, wmCalClock and wmtop do not.
Comment 1 Lubos Lunak 2003-11-20 17:26:22 UTC
Subject: kdebase/kwin

CVS commit by lunakl: 

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


  M +8 -26     manage.cpp   2.19


--- kdebase/kwin/manage.cpp  #2.18:2.19
@@ -40,29 +40,4 @@ bool Client::manage( Window w, bool isMa
         return false;
 
-    // initial state
-    int init_mapping_state = NormalState;
-    XWMHints * hints = XGetWMHints(qt_xdisplay(), w );
-    if (hints && (hints->flags & StateHint))
-        init_mapping_state = hints->initial_state;
-    if (hints)
-        XFree(hints);
-    if( isMapped )
-        init_mapping_state = NormalState; // if it's already mapped, ignore hint
-
-    if( init_mapping_state != NormalState
-        && init_mapping_state != IconicState )
-        { // don't manage windows with strange initial mapping state
-      // it's mapped and unmapped for WindowMaker applets
-      // they usually map with initial_state == Withdrawn,
-      // and don't want to be mapped
-      // mapping it for a while will give the docking panel
-      // a chance to get MapNotify for it, and swallow the matching
-      // window
-      // SELI 
-        XMapWindow( qt_xdisplay(), w );
-        XUnmapWindow( qt_xdisplay(), w );
-        return false;
-        }
-
 //    XGrabServer( qt_xdisplay()); // FRAME
 
@@ -74,5 +49,12 @@ bool Client::manage( Window w, bool isMa
     // SELI order all these things in some sane manner
 
-    bool init_minimize = init_mapping_state == IconicState;
+    bool init_minimize = false;
+    XWMHints * hints = XGetWMHints(qt_xdisplay(), w );
+    if (hints && (hints->flags & StateHint) && hints->initial_state == IconicState)
+        init_minimize = true;
+    if (hints)
+        XFree(hints);
+    if( isMapped )
+        init_minimize = false; // if it's already mapped, ignore hint
 
     unsigned long properties[ 2 ];