diff options
Diffstat (limited to 'src/WorkspaceCmd.cc')
-rw-r--r-- | src/WorkspaceCmd.cc | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/WorkspaceCmd.cc b/src/WorkspaceCmd.cc index 75cf4d3..a9b7aca 100644 --- a/src/WorkspaceCmd.cc +++ b/src/WorkspaceCmd.cc | |||
@@ -49,10 +49,10 @@ void WindowListCmd::execute() { | |||
49 | 49 | ||
50 | BScreen *screen = Fluxbox::instance()->keyScreen(); | 50 | BScreen *screen = Fluxbox::instance()->keyScreen(); |
51 | if (screen != 0) { | 51 | if (screen != 0) { |
52 | FocusControl::Focusables *win_list = &screen->focusControl().creationOrderWinList(); | 52 | FocusControl::Focusables win_list(screen->focusControl().creationOrderWinList()); |
53 | 53 | ||
54 | FocusControl::Focusables::iterator it = win_list->begin(), | 54 | FocusControl::Focusables::iterator it = win_list.begin(), |
55 | it_end = win_list->end(); | 55 | it_end = win_list.end(); |
56 | for (; it != it_end; ++it) { | 56 | for (; it != it_end; ++it) { |
57 | if (m_pat.match(**it) && (*it)->fbwindow()) | 57 | if (m_pat.match(**it) && (*it)->fbwindow()) |
58 | m_cmd->execute(*(*it)->fbwindow()); | 58 | m_cmd->execute(*(*it)->fbwindow()); |
@@ -60,6 +60,26 @@ void WindowListCmd::execute() { | |||
60 | } | 60 | } |
61 | } | 61 | } |
62 | 62 | ||
63 | void AttachCmd::execute() { | ||
64 | BScreen *screen = Fluxbox::instance()->keyScreen(); | ||
65 | if (screen != 0) { | ||
66 | FocusControl::Focusables win_list(screen->focusControl().focusedOrderWinList()); | ||
67 | |||
68 | FocusControl::Focusables::iterator it = win_list.begin(), | ||
69 | it_end = win_list.end(); | ||
70 | FluxboxWindow *first = 0; | ||
71 | for (; it != it_end; ++it) { | ||
72 | if (m_pat.match(**it) && (*it)->fbwindow()) { | ||
73 | if (first == 0) | ||
74 | first = (*it)->fbwindow(); | ||
75 | else | ||
76 | first->attachClient((*it)->fbwindow()->winClient()); | ||
77 | } | ||
78 | } | ||
79 | |||
80 | } | ||
81 | } | ||
82 | |||
63 | void NextWindowCmd::execute() { | 83 | void NextWindowCmd::execute() { |
64 | BScreen *screen = Fluxbox::instance()->keyScreen(); | 84 | BScreen *screen = Fluxbox::instance()->keyScreen(); |
65 | if (screen != 0) | 85 | if (screen != 0) |