fix remembered layer and layer menu
markt markt
5 files changed,
22 insertions(+),
10 deletions(-)
M
ChangeLog
→
ChangeLog
@@ -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.cc
→
src/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.hh
→
src/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.cc
→
src/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.hh
→
src/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();