[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 94199] show desktop button : option to automatically re-show
From:       "Aaron J.Seigo" <aseigo () kde ! org>
Date:       2004-12-01 5:11:46
Message-ID: 20041201051146.25604.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
        
http://bugs.kde.org/show_bug.cgi?id=94199        
aseigo kde org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From aseigo kde org  2004-12-01 06:11 -------
CVS commit by aseigo: 

if you have the desktop hidden, and a window gets shown, turn off desktop
hiding. this really does make more sense IMHO and requires neither a
revert to the old way nor a config option. hooray!
BUG:94199


  M +20 -0     showdesktop.cpp   1.6
  M +1 -0      showdesktop.h   1.4


--- kdebase/kicker/core/showdesktop.cpp  #1.5:1.6
 @ -45,4 +45,6  @ ShowDesktop::ShowDesktop()
     connect( kWinModule, SIGNAL(currentDesktopChanged(int)),
              SLOT(slotCurrentDesktopChanged(int)));
+    connect( kWinModule, SIGNAL(windowAdded(WId)),
+             SLOT(slotWindowAdded(WId)));
     connect( kWinModule, SIGNAL(windowChanged(WId,unsigned int)),
              SLOT(slotWindowChanged(WId,unsigned int)));
 @ -54,4 +56,22  @ void ShowDesktop::slotCurrentDesktopChan
 }
 
+void ShowDesktop::slotWindowAdded(WId w)
+{
+    if (!showingDesktop)
+    {
+        return;
+    }
+
+    NETWinInfo inf(qt_xdisplay(), w, qt_xrootwin(),
+                   NET::XAWMState | NET::WMWindowType);
+    NET::WindowType windowType = inf.windowType(NET::AllTypesMask);
+
+    if ((windowType == NET::Normal || windowType == NET::Unknown) &&
+        inf.mappingState() == NET::Visible)
+    {
+        showDesktop(false);
+    }
+}
+
 void ShowDesktop::slotWindowChanged(WId w, unsigned int dirty)
 {

--- kdebase/kicker/core/showdesktop.h  #1.3:1.4
 @ -47,4 +47,5  @ signals:
 private slots:
     void slotCurrentDesktopChanged(int);
+    void slotWindowAdded(WId w);
     void slotWindowChanged(WId w, unsigned int dirty);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic