[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