summaryrefslogtreecommitdiff
path: root/src/FocusableList.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/FocusableList.cc')
-rw-r--r--src/FocusableList.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/FocusableList.cc b/src/FocusableList.cc
index b06faac..b2b0320 100644
--- a/src/FocusableList.cc
+++ b/src/FocusableList.cc
@@ -100,8 +100,10 @@ void FocusableList::init() {
100 join(m_screen.currentWorkspaceSig(), 100 join(m_screen.currentWorkspaceSig(),
101 FbTk::MemFun(*this, &FocusableList::workspaceChanged)); 101 FbTk::MemFun(*this, &FocusableList::workspaceChanged));
102 } 102 }
103 if (m_pat->dependsOnFocusedWindow()) 103 if (m_pat->dependsOnFocusedWindow()) {
104 m_screen.focusedWindowSig().attach(this); 104 join(m_screen.focusedWindowSig(),
105 FbTk::MemFun(*this, &FocusableList::focusedWindowChanged));
106 }
105} 107}
106 108
107void FocusableList::update(FbTk::Subject *subj) { 109void FocusableList::update(FbTk::Subject *subj) {
@@ -150,8 +152,7 @@ void FocusableList::update(FbTk::Subject *subj) {
150 if (insertFromParent(*win)) 152 if (insertFromParent(*win))
151 m_ordersig.notify(win); 153 m_ordersig.notify(win);
152 } 154 }
153 } else if (subj == &m_screen.focusedWindowSig()) 155 }
154 reset();
155} 156}
156 157
157void FocusableList::checkUpdate(Focusable &win) { 158void FocusableList::checkUpdate(Focusable &win) {
@@ -315,3 +316,9 @@ void FocusableList::attachChild(FocusableList &child) const {
315void FocusableList::workspaceChanged(BScreen &screen) { 316void FocusableList::workspaceChanged(BScreen &screen) {
316 reset(); 317 reset();
317} 318}
319
320void FocusableList::focusedWindowChanged(BScreen &screen,
321 FluxboxWindow *focused_win,
322 WinClient *client) {
323 reset();
324}