diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Screen.hh | 2 | ||||
-rw-r--r-- | src/Window.cc | 13 | ||||
-rw-r--r-- | src/Window.hh | 1 |
3 files changed, 13 insertions, 3 deletions
diff --git a/src/Screen.hh b/src/Screen.hh index b8d589b..ba2d6ea 100644 --- a/src/Screen.hh +++ b/src/Screen.hh | |||
@@ -107,7 +107,7 @@ public: | |||
107 | bool getMaxDisableMove() const { return *resource.max_disable_move; } | 107 | bool getMaxDisableMove() const { return *resource.max_disable_move; } |
108 | bool getMaxDisableResize() const { return *resource.max_disable_resize; } | 108 | bool getMaxDisableResize() const { return *resource.max_disable_resize; } |
109 | bool doShowWindowPos() const { return *resource.show_window_pos; } | 109 | bool doShowWindowPos() const { return *resource.show_window_pos; } |
110 | const std::string &defaultDeco() const { return *resource.default_deco; } | 110 | FbTk::StringResource &defaultDecoResource() { return resource.default_deco; } |
111 | const std::string windowMenuFilename() const; | 111 | const std::string windowMenuFilename() const; |
112 | FbTk::ImageControl &imageControl() { return *m_image_control.get(); } | 112 | FbTk::ImageControl &imageControl() { return *m_image_control.get(); } |
113 | // menus | 113 | // menus |
diff --git a/src/Window.cc b/src/Window.cc index 5df5ad1..8744fe2 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -411,13 +411,15 @@ void FluxboxWindow::init() { | |||
411 | m_workspace_number = m_screen.currentWorkspaceID(); | 411 | m_workspace_number = m_screen.currentWorkspaceID(); |
412 | 412 | ||
413 | // set default decorations but don't apply them | 413 | // set default decorations but don't apply them |
414 | setDecorationMask(WindowState::getDecoMaskFromString(screen().defaultDeco()), | 414 | setDecorationMask(WindowState::getDecoMaskFromString(*screen().defaultDecoResource()), |
415 | false); | 415 | false); |
416 | 416 | ||
417 | functions.resize = functions.move = functions.iconify = functions.maximize | 417 | functions.resize = functions.move = functions.iconify = functions.maximize |
418 | = functions.close = functions.tabable = true; | 418 | = functions.close = functions.tabable = true; |
419 | 419 | ||
420 | updateMWMHintsFromClient(*m_client); | 420 | updateMWMHintsFromClient(*m_client); |
421 | join(screen().defaultDecoResource().modifiedSig(), | ||
422 | FbTk::MemFunIgnoreArgs(*this, &FluxboxWindow::decorationsChanged)); | ||
421 | 423 | ||
422 | m_timer.setTimeout(*fluxbox.getAutoRaiseDelayResource()); | 424 | m_timer.setTimeout(*fluxbox.getAutoRaiseDelayResource()); |
423 | join(fluxbox.getAutoRaiseDelayResource().modifiedSig(), FbTk::MemFun(m_timer, | 425 | join(fluxbox.getAutoRaiseDelayResource().modifiedSig(), FbTk::MemFun(m_timer, |
@@ -1100,7 +1102,7 @@ void FluxboxWindow::updateMWMHintsFromClient(WinClient &client) { | |||
1100 | } | 1102 | } |
1101 | 1103 | ||
1102 | unsigned int mask = decorationMask(); | 1104 | unsigned int mask = decorationMask(); |
1103 | mask &= WindowState::getDecoMaskFromString(screen().defaultDeco()); | 1105 | mask &= WindowState::getDecoMaskFromString(*screen().defaultDecoResource()); |
1104 | setDecorationMask(mask, false); | 1106 | setDecorationMask(mask, false); |
1105 | 1107 | ||
1106 | // functions.tabable is ours, not special one | 1108 | // functions.tabable is ours, not special one |
@@ -2693,6 +2695,13 @@ void FluxboxWindow::themeReconfigured() { | |||
2693 | sendConfigureNotify(); | 2695 | sendConfigureNotify(); |
2694 | } | 2696 | } |
2695 | 2697 | ||
2698 | void FluxboxWindow::decorationsChanged() { | ||
2699 | setDecorationMask(WindowState::getDecoMaskFromString(*screen().defaultDecoResource()), | ||
2700 | false); | ||
2701 | updateMWMHintsFromClient(*m_client); | ||
2702 | applyDecorations(); | ||
2703 | } | ||
2704 | |||
2696 | void FluxboxWindow::workspaceAreaChanged(BScreen &screen) { | 2705 | void FluxboxWindow::workspaceAreaChanged(BScreen &screen) { |
2697 | frame().applyState(); | 2706 | frame().applyState(); |
2698 | } | 2707 | } |
diff --git a/src/Window.hh b/src/Window.hh index a5bcb66..5c2e595 100644 --- a/src/Window.hh +++ b/src/Window.hh | |||
@@ -475,6 +475,7 @@ private: | |||
475 | void grabButtons(); | 475 | void grabButtons(); |
476 | 476 | ||
477 | void themeReconfigured(); | 477 | void themeReconfigured(); |
478 | void decorationsChanged(); | ||
478 | 479 | ||
479 | /** | 480 | /** |
480 | * Calculates insertition position in the list by | 481 | * Calculates insertition position in the list by |