aboutsummaryrefslogtreecommitdiff
path: root/src/WorkspaceCmd.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/WorkspaceCmd.cc')
-rw-r--r--src/WorkspaceCmd.cc26
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
63void 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
63void NextWindowCmd::execute() { 83void NextWindowCmd::execute() {
64 BScreen *screen = Fluxbox::instance()->keyScreen(); 84 BScreen *screen = Fluxbox::instance()->keyScreen();
65 if (screen != 0) 85 if (screen != 0)