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

List:       kde-commits
Subject:    kdebase/kicker/taskmanager
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2005-04-22 16:54:06
Message-ID: 20050422165406.331B35FA () office ! kde ! org
[Download RAW message or body]

CVS commit by aseigo: 

if the window manager supports telling us what window actions are available
then listen to those hints when creating the action menus
BUG:104371


  M +2 -2      taskmanager.cpp   1.102
  M +21 -1     taskrmbmenu.cpp   1.19


--- kdebase/kicker/taskmanager/taskmanager.cpp  #1.101:1.102
@@ -455,5 +455,5 @@ Task::Task(WId win, QObject *parent, con
     _active(false),
     _win(win),
-    _info(KWin::windowInfo(_win)),
+    _info(KWin::windowInfo(_win, 0, NET::WM2AllowedActions)),
     _lastWidth(0),
     _lastHeight(0),
@@ -514,5 +514,5 @@ void Task::refresh(unsigned int dirty)
 {
     QString name = visibleIconicName();
-    _info = KWin::windowInfo(_win);
+    _info = KWin::windowInfo(_win, 0, NET::WM2AllowedActions);
 
     if (dirty != NET::WMName || name != visibleIconicName())

--- kdebase/kicker/taskmanager/taskrmbmenu.cpp  #1.18:1.19
@@ -60,8 +60,9 @@ void TaskRMBMenu::fillMenu(Task::Ptr t)
 
     insertItem(i18n("Ad&vanced"), makeAdvancedMenu(t));
+    bool checkActions = KWin::allowedActionsSupported();
 
     if (TaskManager::the()->numberOfDesktops() > 1)
     {
-        insertItem(i18n("To &Desktop"), makeDesktopsMenu(t));
+        id = insertItem(i18n("To &Desktop"), makeDesktopsMenu(t));
 
         if (showAll)
@@ -71,19 +72,33 @@ void TaskRMBMenu::fillMenu(Task::Ptr t)
             setItemEnabled( id, !t->isOnCurrentDesktop() );
         }
+
+        if (checkActions)
+        {
+            setItemEnabled(id, t->info().actionSupported(NET::ActionChangeDesktop));
+        }
     }
 
     id = insertItem(SmallIconSet("move"), i18n("&Move"), t, SLOT(move()));
+    setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionMove));
+
     id = insertItem(i18n("Re&size"), t, SLOT(resize()));
+    setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionResize));
 
     id = insertItem(i18n("Mi&nimize"), t, SLOT(toggleIconified()));
     setItemChecked(id, t->isIconified());
+    setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionMinimize));
+
     id = insertItem(i18n("Ma&ximize"), t, SLOT(toggleMaximized()));
     setItemChecked(id, t->isMaximized());
+    setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionMax));
+
     id = insertItem(i18n("&Shade"), t, SLOT(toggleShaded()));
     setItemChecked(id, t->isShaded());
+    setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionShade));
 
     insertSeparator();
 
     id = insertItem(SmallIcon("fileclose"), i18n("&Close"), t, SLOT(close()));
+    setItemEnabled(id, !checkActions || t->info().actionSupported(NET::ActionClose));
 }
 
@@ -205,4 +220,9 @@ QPopupMenu* TaskRMBMenu::makeAdvancedMen
     menu->setItemChecked(id, t->isFullScreen());
 
+    if (KWin::allowedActionsSupported())
+    {
+        menu->setItemEnabled(id, t->info().actionSupported(NET::ActionFullScreen));
+    }
+
     return menu;
 }


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

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