summaryrefslogtreecommitdiff
path: root/src/fluxbox.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/fluxbox.cc')
-rw-r--r--src/fluxbox.cc19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index acbb55d..e9c548c 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -454,10 +454,11 @@ void Fluxbox::initScreen(BScreen *screen) {
454 454
455 // attach screen signals to this 455 // attach screen signals to this
456 screen->focusedWindowSig().attach(this); 456 screen->focusedWindowSig().attach(this);
457 screen->workspaceNamesSig().attach(this);
458 screen->workspaceAreaSig().attach(this); 457 screen->workspaceAreaSig().attach(this);
459 screen->clientListSig().attach(this); 458 screen->clientListSig().attach(this);
460 459
460 join(screen->workspaceNamesSig(),
461 FbTk::MemFun(*this, &Fluxbox::workspaceNamesChanged));
461 join(screen->currentWorkspaceSig(), 462 join(screen->currentWorkspaceSig(),
462 FbTk::MemFun(*this, &Fluxbox::workspaceChanged)); 463 FbTk::MemFun(*this, &Fluxbox::workspaceChanged));
463 464
@@ -1102,13 +1103,7 @@ void Fluxbox::update(FbTk::Subject *changedsub) {
1102 } else if (typeid(*changedsub) == typeid(BScreen::ScreenSubject)) { 1103 } else if (typeid(*changedsub) == typeid(BScreen::ScreenSubject)) {
1103 BScreen::ScreenSubject *subj = dynamic_cast<BScreen::ScreenSubject *>(changedsub); 1104 BScreen::ScreenSubject *subj = dynamic_cast<BScreen::ScreenSubject *>(changedsub);
1104 BScreen &screen = subj->screen(); 1105 BScreen &screen = subj->screen();
1105 if ((&(screen.workspaceNamesSig())) == changedsub) { 1106 if ((&(screen.focusedWindowSig())) == changedsub) {
1106 for (AtomHandlerContainerIt it= m_atomhandler.begin();
1107 it != m_atomhandler.end(); ++it) {
1108 if ((*it).first->update())
1109 (*it).first->updateWorkspaceNames(screen);
1110 }
1111 } else if ((&(screen.focusedWindowSig())) == changedsub) {
1112 for (AtomHandlerContainerIt it= m_atomhandler.begin(); 1107 for (AtomHandlerContainerIt it= m_atomhandler.begin();
1113 it != m_atomhandler.end(); it++) { 1108 it != m_atomhandler.end(); it++) {
1114 (*it).first->updateFocusedWindow(screen, 1109 (*it).first->updateFocusedWindow(screen,
@@ -1530,3 +1525,11 @@ void Fluxbox::workspaceChanged( BScreen& screen ) {
1530 (*it).first->updateCurrentWorkspace(screen); 1525 (*it).first->updateCurrentWorkspace(screen);
1531 } 1526 }
1532} 1527}
1528
1529void Fluxbox::workspaceNamesChanged(BScreen &screen) {
1530 for (AtomHandlerContainerIt it= m_atomhandler.begin();
1531 it != m_atomhandler.end(); ++it) {
1532 if ((*it).first->update())
1533 (*it).first->updateWorkspaceNames(screen);
1534 }
1535}