diff options
Diffstat (limited to 'src/ClientMenu.cc')
-rw-r--r-- | src/ClientMenu.cc | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/ClientMenu.cc b/src/ClientMenu.cc index 4a3dacd..96527ec 100644 --- a/src/ClientMenu.cc +++ b/src/ClientMenu.cc | |||
@@ -40,10 +40,7 @@ public: | |||
40 | m_client(client) { | 40 | m_client(client) { |
41 | m_signals.join(client.titleSig(), | 41 | m_signals.join(client.titleSig(), |
42 | FbTk::MemFunSelectArg1(menu, &ClientMenu::titleChanged)); | 42 | FbTk::MemFunSelectArg1(menu, &ClientMenu::titleChanged)); |
43 | client.dieSig().attach(&menu); | 43 | m_signals.join(client.dieSig(), FbTk::MemFun(menu, &ClientMenu::clientDied)); |
44 | } | ||
45 | |||
46 | ~ClientMenuItem() { | ||
47 | } | 44 | } |
48 | 45 | ||
49 | void click(int button, int time, unsigned int mods) { | 46 | void click(int button, int time, unsigned int mods) { |
@@ -156,16 +153,11 @@ void ClientMenu::titleChanged(Focusable& win) { | |||
156 | themeReconfigured(); | 153 | themeReconfigured(); |
157 | } | 154 | } |
158 | 155 | ||
159 | void ClientMenu::update(FbTk::Subject *subj) { | 156 | void ClientMenu::clientDied(Focusable &win) { |
160 | if (Focusable::FocusSubject *fsubj = dynamic_cast<Focusable::FocusSubject *>(subj)) { | 157 | // find correct menu item |
161 | Focusable &win = fsubj->win(); | 158 | ClientMenuItem* cl_item = getMenuItem(*this, win); |
162 | |||
163 | // find correct menu item | ||
164 | ClientMenuItem* cl_item = getMenuItem(*this, win); | ||
165 | 159 | ||
166 | // update accordingly | 160 | // update accordingly |
167 | if (cl_item && fsubj == &win.dieSig()) { | 161 | if (cl_item) |
168 | remove(cl_item->getIndex()); | 162 | remove(cl_item->getIndex()); |
169 | } | ||
170 | } | ||
171 | } | 163 | } |