add feature to minimize windows in current layer
markt markt
4 files changed,
30 insertions(+),
3 deletions(-)
M
ChangeLog
→
ChangeLog
@@ -1,5 +1,9 @@
(Format: Year/Month/Day) Changes for 1.0rc3: +*07/01/11: + * Added option to :Minimize key command to lower all windows in the same + layer as the focused window -- syntax is `:Minimize (layer)' (Mark) + FbCommandFactory.cc WorkspaceCmd.cc/hh *07/01/08: * Fix another 64-bit window property (Mark/Simon) FbTk/FbWindow.cc
M
src/FbCommandFactory.cc
→
src/FbCommandFactory.cc
@@ -233,9 +233,15 @@ // Current focused window commands
// else if (command == "fullscreen") return new FullscreenCmd(); - else if (command == "minimizewindow" || command == "minimize" || command == "iconify") - return new CurrentWindowCmd(&FluxboxWindow::iconify); - else if (command == "maximizewindow" || command == "maximize") + else if (command == "minimizewindow" || command == "minimize" || command == "iconify") { + string cmd; + if (FbTk::StringUtil::getStringBetween(cmd, arguments.c_str() + + 0, '(', ')', " \t\n", true) + && cmd == "layer") + return new MinimizeLayerCmd(); + else + return new CurrentWindowCmd(&FluxboxWindow::iconify); + } else if (command == "maximizewindow" || command == "maximize") return new CurrentWindowCmd(&FluxboxWindow::maximizeFull); else if (command == "maximizevertical") return new CurrentWindowCmd(&FluxboxWindow::maximizeVertical);
M
src/WorkspaceCmd.cc
→
src/WorkspaceCmd.cc
@@ -255,6 +255,19 @@ windows.end(),
std::mem_fun(&FluxboxWindow::iconify)); } +void MinimizeLayerCmd::execute() { + FluxboxWindow *win = FocusControl::focusedFbWindow(); + if (!win) + return; + + Workspace::Windows windows(win->screen().currentWorkspace()->windowList()); + Workspace::Windows::iterator it = windows.begin(), it_end = windows.end(); + for (; it != it_end; ++it) { + if (win->layerNum() == (*it)->layerNum()) + (*it)->iconify(); + } +} + void CloseAllWindowsCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0)
M
src/WorkspaceCmd.hh
→
src/WorkspaceCmd.hh
@@ -104,6 +104,10 @@ public:
void execute(); }; +class MinimizeLayerCmd: public FbTk::Command { +public: + void execute(); +}; class CloseAllWindowsCmd: public FbTk::Command { public: