aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/FbCommandFactory.cc3
-rw-r--r--src/WorkspaceCmd.cc21
-rw-r--r--src/WorkspaceCmd.hh6
3 files changed, 30 insertions, 0 deletions
diff --git a/src/FbCommandFactory.cc b/src/FbCommandFactory.cc
index 4bf1dd5..a749684 100644
--- a/src/FbCommandFactory.cc
+++ b/src/FbCommandFactory.cc
@@ -51,6 +51,7 @@ FbCommandFactory::FbCommandFactory() {
51 "arrangewindows", 51 "arrangewindows",
52 "bindkey", 52 "bindkey",
53 "close", 53 "close",
54 "closeallwindows",
54 "commanddialog", 55 "commanddialog",
55 "deiconify", 56 "deiconify",
56 "detachclient", 57 "detachclient",
@@ -310,6 +311,8 @@ FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command,
310 return new CurrentWindowCmd(&FluxboxWindow::lowerLayer); 311 return new CurrentWindowCmd(&FluxboxWindow::lowerLayer);
311 else if (command == "close") 312 else if (command == "close")
312 return new CurrentWindowCmd(&FluxboxWindow::close); 313 return new CurrentWindowCmd(&FluxboxWindow::close);
314 else if (command == "closeallwindows")
315 return new CloseAllWindowsCmd();
313 else if (command == "shade" || command == "shadewindow") 316 else if (command == "shade" || command == "shadewindow")
314 return new CurrentWindowCmd(&FluxboxWindow::shade); 317 return new CurrentWindowCmd(&FluxboxWindow::shade);
315 else if (command == "stick" || command == "stickwindow") 318 else if (command == "stick" || command == "stickwindow")
diff --git a/src/WorkspaceCmd.cc b/src/WorkspaceCmd.cc
index 3673e17..9951e0e 100644
--- a/src/WorkspaceCmd.cc
+++ b/src/WorkspaceCmd.cc
@@ -238,3 +238,24 @@ void ShowDesktopCmd::execute() {
238 windows.end(), 238 windows.end(),
239 std::mem_fun(&FluxboxWindow::iconify)); 239 std::mem_fun(&FluxboxWindow::iconify));
240} 240}
241
242void CloseAllWindowsCmd::execute() {
243 BScreen *screen = Fluxbox::instance()->mouseScreen();
244 if (screen == 0)
245 return;
246
247 BScreen::Workspaces::iterator workspace_it = screen->getWorkspacesList().begin();
248 BScreen::Workspaces::iterator workspace_it_end = screen->getWorkspacesList().end();
249 for (; workspace_it != workspace_it_end; ++workspace_it) {
250 Workspace::Windows windows((*workspace_it)->windowList());
251 std::for_each(windows.begin(),
252 windows.end(),
253 std::mem_fun(&FluxboxWindow::close));
254 }
255 BScreen::Icons::iterator icon_it = screen->iconList().begin();
256 BScreen::Icons::iterator icon_it_end = screen->iconList().end();
257 for (; icon_it != icon_it_end; ++icon_it ) {
258 (*icon_it)->close();
259 }
260
261}
diff --git a/src/WorkspaceCmd.hh b/src/WorkspaceCmd.hh
index 786492d..1e5b04d 100644
--- a/src/WorkspaceCmd.hh
+++ b/src/WorkspaceCmd.hh
@@ -104,4 +104,10 @@ public:
104 void execute(); 104 void execute();
105}; 105};
106 106
107
108class CloseAllWindowsCmd: public FbTk::Command {
109public:
110 void execute();
111};
112
107#endif // WORKSPACECMD_HH 113#endif // WORKSPACECMD_HH