all repos — fluxbox @ cf6e471fbf027a1ba08693d6562ae5d63aaa9e24

custom fork of the fluxbox windowmanager

fix remembered layer and layer menu
markt markt
commit

cf6e471fbf027a1ba08693d6562ae5d63aaa9e24

parent

07a3b3939bbdfa084f91c07984fdc60c2696a213

5 files changed, 22 insertions(+), 10 deletions(-)

jump to
M ChangeLogChangeLog

@@ -1,6 +1,10 @@

(Format: Year/Month/Day) Changes for 1.0rc3: *07/02/04: + * Layer wasn't set properly on remembered windows, and the layer menu + wasn't getting updated properly, bugs #1535304, #1572683, #1646740 + (Mark) + Window.cc/hh LayerMenu.cc/hh * Clicking on the edge of a button didn't work, bugs #1060891, #1517747 (Mark) FbTk/Button.cc
M src/LayerMenu.ccsrc/LayerMenu.cc

@@ -65,3 +65,10 @@ }

} updateMenu(); } + +// update which items appear disabled whenever we show the menu +void LayerMenu::show() { + frameWindow().updateBackground(false); + clearWindow(); + FbTk::Menu::show(); +}
M src/LayerMenu.hhsrc/LayerMenu.hh

@@ -41,11 +41,12 @@

/// this class holds the layermenu items class LayerMenuItem : public FbTk::MenuItem { public: - LayerMenuItem(const FbTk::FbString &label, LayerObject *object, int layernum, - FbTk::RefCount<FbTk::Command> &cmd): + LayerMenuItem(const FbTk::FbString &label, LayerObject *object, + int layernum, FbTk::RefCount<FbTk::Command> &cmd): FbTk::MenuItem(label, cmd), m_object(object), m_layernum(layernum) {} - LayerMenuItem(const FbTk::FbString &label, LayerObject *object, int layernum): + LayerMenuItem(const FbTk::FbString &label, LayerObject *object, + int layernum): FbTk::MenuItem(label), m_object(object), m_layernum(layernum) {} bool isEnabled() const { return m_object->layerNumber() != m_layernum; }

@@ -65,7 +66,7 @@ class LayerMenu : public ToggleMenu {

public: LayerMenu(MenuTheme &tm, FbTk::ImageControl &imgctrl, FbTk::XLayer &layer, LayerObject *item, bool save_rc); - + void show(); }; #endif // LAYERMENU_HH
M src/Window.ccsrc/Window.cc

@@ -497,7 +497,7 @@ m_client->transientFor()->fbwindow() &&

m_client->transientFor()->fbwindow() != this) layerItem().setLayer(m_client->transientFor()->fbwindow()->layerItem().getLayer()); else // if no parent then set default layer - moveToLayer(m_layernum); + moveToLayer(m_layernum, m_layernum != ::Layer::NORMAL); #ifdef DEBUG cerr<<"FluxboxWindow::init("<<title()<<") transientFor: "<< m_client->transientFor()<<endl;

@@ -1934,7 +1934,7 @@ moveToLayer(m_layernum+1);

} -void FluxboxWindow::moveToLayer(int layernum) { +void FluxboxWindow::moveToLayer(int layernum, bool force) { #ifdef DEBUG cerr<<"FluxboxWindow("<<title()<<")::moveToLayer("<<layernum<<")"<<endl; #endif // DEBUG

@@ -1948,7 +1948,7 @@

if (!m_initialized) m_layernum = layernum; - if (m_layernum == layernum) + if (m_layernum == layernum && !force) return; // get root window

@@ -1963,9 +1963,9 @@ if (!win) return;

if (!win->isIconic()) { if (layernum > m_layernum) - screen().updateNetizenWindowRaise(client->window()); - else screen().updateNetizenWindowLower(client->window()); + else + screen().updateNetizenWindowRaise(client->window()); } win->layerItem().moveToLayer(layernum); // remember number just in case a transient happens to revisit this window
M src/Window.hhsrc/Window.hh

@@ -245,7 +245,7 @@ void lower();

void tempRaise(); void raiseLayer(); void lowerLayer(); - void moveToLayer(int layernum); + void moveToLayer(int layernum, bool force = false); void setFocusHidden(bool value); void setIconHidden(bool value); void reconfigure();