use FbMenu::window instead of WindowCmd<>::window for displaying items in the window menu

This commit is contained in:
Mark Tiefenbruck 2008-08-30 18:36:53 -04:00
parent fd0389d2e1
commit 41b2e0ced4
4 changed files with 20 additions and 21 deletions

View file

@ -35,14 +35,11 @@ FbMenu::FbMenu(FbTk::ThemeProxy<FbTk::MenuTheme> &tm,
}
void FbMenu::show() {
WindowCmd<void>::setWindow(s_window);
FbTk::Menu::show();
}
void FbMenu::buttonPressEvent(XButtonEvent &be) {
WinClient *old = WindowCmd<void>::client();
WindowCmd<void>::setWindow(s_window);
FbTk::Menu::buttonPressEvent(be);
WindowCmd<void>::setClient(old);
}
void FbMenu::buttonReleaseEvent(XButtonEvent &be) {
@ -55,13 +52,17 @@ void FbMenu::buttonReleaseEvent(XButtonEvent &be) {
screen->getHeadWidth(head),
screen->getHeadHeight(head));
}
WindowCmd<void>::setWindow(s_window);
// now get on with the show
WinClient *old = WindowCmd<void>::client();
WindowCmd<void>::setWindow(s_window);
FbTk::Menu::buttonReleaseEvent(be);
WindowCmd<void>::setClient(old);
}
void FbMenu::keyPressEvent(XKeyEvent &ke) {
WinClient *old = WindowCmd<void>::client();
WindowCmd<void>::setWindow(s_window);
FbTk::Menu::keyPressEvent(ke);
WindowCmd<void>::setClient(old);
}

View file

@ -42,7 +42,6 @@ public:
virtual ~FbMenu() { }
void raise() { m_layeritem.raise(); }
void lower() { m_layeritem.lower(); }
void show();
void buttonPressEvent(XButtonEvent &be);
void buttonReleaseEvent(XButtonEvent &be);
void keyPressEvent(XKeyEvent &ke);

View file

@ -168,14 +168,14 @@ private:
class MenuContext: public LayerObject {
public:
void moveToLayer(int layer_number) {
if (WindowCmd<void>::window() == 0)
if (FbMenu::window() == 0)
return;
WindowCmd<void>::window()->moveToLayer(layer_number);
FbMenu::window()->moveToLayer(layer_number);
}
int layerNumber() const {
if (WindowCmd<void>::window() == 0)
if (FbMenu::window() == 0)
return -1;
return WindowCmd<void>::window()->layerItem().getLayerNum();
return FbMenu::window()->layerItem().getLayerNum();
}
};

View file

@ -29,7 +29,6 @@
#include "FbMenu.hh"
#include "FbCommands.hh"
#include "fluxbox.hh"
#include "WindowCmd.hh"
#include "Layer.hh"
#include "FbTk/I18n.hh"
@ -250,23 +249,23 @@ public:
}
bool isSelected() const {
if (WindowCmd<void>::window() == 0)
if (FbMenu::window() == 0)
return false;
if (WindowCmd<void>::window()->numClients()) // ensure it HAS clients
return Remember::instance().isRemembered(WindowCmd<void>::window()->winClient(), m_attrib);
if (FbMenu::window()->numClients()) // ensure it HAS clients
return Remember::instance().isRemembered(FbMenu::window()->winClient(), m_attrib);
else
return false;
}
bool isEnabled() const {
if (WindowCmd<void>::window() == 0)
if (FbMenu::window() == 0)
return false;
if (m_attrib != Remember::REM_JUMPWORKSPACE)
return true;
else if (WindowCmd<void>::window()->numClients())
return (Remember::instance().isRemembered(WindowCmd<void>::window()->winClient(), Remember::REM_WORKSPACE));
else if (FbMenu::window()->numClients())
return (Remember::instance().isRemembered(FbMenu::window()->winClient(), Remember::REM_WORKSPACE));
else
return false;
}
@ -274,11 +273,11 @@ public:
void click(int button, int time, unsigned int mods) {
// reconfigure only does stuff if the apps file has changed
Remember::instance().checkReload();
if (WindowCmd<void>::window() != 0) {
if (FbMenu::window() != 0) {
if (isSelected()) {
Remember::instance().forgetAttrib(WindowCmd<void>::window()->winClient(), m_attrib);
Remember::instance().forgetAttrib(FbMenu::window()->winClient(), m_attrib);
} else {
Remember::instance().rememberAttrib(WindowCmd<void>::window()->winClient(), m_attrib);
Remember::instance().rememberAttrib(FbMenu::window()->winClient(), m_attrib);
}
}
Remember::instance().save();