diff options
Diffstat (limited to 'src/FocusControl.cc')
-rw-r--r-- | src/FocusControl.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/FocusControl.cc b/src/FocusControl.cc index 61d6e87..21c243d 100644 --- a/src/FocusControl.cc +++ b/src/FocusControl.cc | |||
@@ -149,6 +149,11 @@ void FocusControl::addFocusBack(WinClient &client) { | |||
149 | m_creation_order_list.push_back(&client); | 149 | m_creation_order_list.push_back(&client); |
150 | } | 150 | } |
151 | 151 | ||
152 | void FocusControl::addFocusFront(WinClient &client) { | ||
153 | m_focused_list.push_front(&client); | ||
154 | m_creation_order_list.push_back(&client); | ||
155 | } | ||
156 | |||
152 | // move all clients in given window to back of focused list | 157 | // move all clients in given window to back of focused list |
153 | void FocusControl::setFocusBack(FluxboxWindow *fbwin) { | 158 | void FocusControl::setFocusBack(FluxboxWindow *fbwin) { |
154 | // do nothing if there are no windows open | 159 | // do nothing if there are no windows open |
@@ -375,8 +380,9 @@ void FocusControl::removeClient(WinClient &client) { | |||
375 | } | 380 | } |
376 | 381 | ||
377 | void FocusControl::shutdown() { | 382 | void FocusControl::shutdown() { |
378 | FocusedWindows::iterator it = m_focused_list.begin(); | 383 | // restore windows backwards so they get put back correctly on restart |
379 | for (; it != m_focused_list.end(); ++it) { | 384 | FocusedWindows::reverse_iterator it = m_focused_list.rbegin(); |
385 | for (; it != m_focused_list.rend(); ++it) { | ||
380 | if (*it && (*it)->fbwindow()) | 386 | if (*it && (*it)->fbwindow()) |
381 | (*it)->fbwindow()->restore(*it, true); | 387 | (*it)->fbwindow()->restore(*it, true); |
382 | } | 388 | } |