diff options
Diffstat (limited to 'src/WorkspaceCmd.cc')
-rw-r--r-- | src/WorkspaceCmd.cc | 21 |
1 files changed, 21 insertions, 0 deletions
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 | |||
242 | void 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 | } | ||