implemented visibility of titlebar buttons via the apps file
Mathias Gumz akira at fluxbox dot org
2 files changed,
27 insertions(+),
17 deletions(-)
M
ChangeLog
→
ChangeLog
@@ -1,5 +1,9 @@
(Format: Year/Month/Day) Changes for 1.1.2 +*09/09/12: + * Implemented visibility of titlebar buttons via the apps file (Mathias) + Window.cc + *09/06/28: * Allow matching screen number in ClientPattern (thanks Peter Hercek) ClientPattern.cc@@ -13,6 +17,7 @@ * Add window menu and alt-tab to error case for keys file (Mark)
Keys.cc * Revert to relative iconbar alignment when too many windows are open (Mark) FbTk/Container.cc + *09/05/26: * Fixed unexpected window focus changes under "focus follows mouse" (Jim) FocusControl.cc/hh Window.cc fluxbox.cc Screen.cc
M
src/Window.cc
→
src/Window.cc
@@ -2810,6 +2810,7 @@ decorations.sticky = mask & WindowState::DECORM_STICKY;
decorations.shade = mask & WindowState::DECORM_SHADE; decorations.tab = mask & WindowState::DECORM_TAB; decorations.enabled = mask & WindowState::DECORM_ENABLED; + // we don't want to do this during initialization if (apply) applyDecorations();@@ -3574,7 +3575,7 @@ WinButton *winbtn = 0;
switch (dir[i]) { case WinButton::MINIMIZE: - if (isIconifiable()) { + if (isIconifiable() && (m_state.deco_mask & WindowState::DECORM_ICONIFY)) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), WinButton::MINIMIZE,@@ -3584,7 +3585,7 @@ winbtn->setOnClick(iconify_cmd);
} break; case WinButton::MAXIMIZE: - if (isMaximizable()) { + if (isMaximizable() && (m_state.deco_mask & WindowState::DECORM_MAXIMIZE) ) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i],@@ -3597,7 +3598,7 @@
} break; case WinButton::CLOSE: - if (m_client->isClosable()) { + if (m_client->isClosable() && (m_state.deco_mask & WindowState::DECORM_CLOSE)) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i],@@ -3609,23 +3610,27 @@ stateSig().attach(winbtn);
} break; case WinButton::STICK: - winbtn = new WinButton(*this, m_button_theme, - screen().pressedWinButtonTheme(), - dir[i], - frame().titlebar(), - 0, 0, 10, 10); + if (m_state.deco_mask & WindowState::DECORM_STICKY) { + winbtn = new WinButton(*this, m_button_theme, + screen().pressedWinButtonTheme(), + dir[i], + frame().titlebar(), + 0, 0, 10, 10); - stateSig().attach(winbtn); - winbtn->setOnClick(stick_cmd); + stateSig().attach(winbtn); + winbtn->setOnClick(stick_cmd); + } break; case WinButton::SHADE: - winbtn = new WinButton(*this, m_button_theme, - screen().pressedWinButtonTheme(), - dir[i], - frame().titlebar(), - 0, 0, 10, 10); - stateSig().attach(winbtn); - winbtn->setOnClick(shade_cmd); + if (m_state.deco_mask & WindowState::DECORM_SHADE) { + winbtn = new WinButton(*this, m_button_theme, + screen().pressedWinButtonTheme(), + dir[i], + frame().titlebar(), + 0, 0, 10, 10); + stateSig().attach(winbtn); + winbtn->setOnClick(shade_cmd); + } break; case WinButton::MENUICON: winbtn = new WinButton(*this, m_button_theme,