all repos — fluxbox @ 9cace1f2cb9a082408e49e668bd02a16a016cd6e

custom fork of the fluxbox windowmanager

add feature to minimize windows in current layer
markt markt
commit

9cace1f2cb9a082408e49e668bd02a16a016cd6e

parent

45743c6f42aa50548141dad7a050a6150200b22a

4 files changed, 30 insertions(+), 3 deletions(-)

jump to
M ChangeLogChangeLog

@@ -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.ccsrc/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.ccsrc/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.hhsrc/WorkspaceCmd.hh

@@ -104,6 +104,10 @@ public:

void execute(); }; +class MinimizeLayerCmd: public FbTk::Command { +public: + void execute(); +}; class CloseAllWindowsCmd: public FbTk::Command { public: