all repos — fluxbox @ 5f9f2475b72e977fa96214e368c34c588b265888

custom fork of the fluxbox windowmanager

make Raise/LowerLayer accept integer argument for number of layers, default 2
Mark Tiefenbruck mark@fluxbox.org
commit

5f9f2475b72e977fa96214e368c34c588b265888

parent

c1d9ae5068ed209a8ed051a68c269bd0158bf6a8

M ChangeLogChangeLog

@@ -1,6 +1,8 @@

(Format: Year/Month/Day) Changes for 1.1.2 *09/06/28: + * Make Raise/LowerLayer commands accept integer argument, defualt 2 (Mark) + CurrentWindowCmd.cc/hh Window.cc/hh * Change default toolbar head to 1 (Mark) Toolbar.cc * Add window menu and alt-tab to error case for keys file (Mark)
M doc/asciidoc/fluxbox-keys.txtdoc/asciidoc/fluxbox-keys.txt

@@ -195,7 +195,7 @@ *Raise* / *Lower*::

Reorder this window to the top or bottom of the window stack, within its current layer. See 'fluxbox(1)' for a discussion of layers. -*RaiseLayer* / *LowerLayer*:: +*RaiseLayer* / *LowerLayer* ['offset']:: Raise the window up to the layer above, or lower it to the layer below. See 'fluxbox(1)' for a discussion of layers.
M doc/fluxbox-keys.5.indoc/fluxbox-keys.5.in

@@ -278,7 +278,7 @@ \fIfluxbox(1)\fR

for a discussion of layers\&. .RE .PP -\fBRaiseLayer\fR / \fBLowerLayer\fR +\fBRaiseLayer\fR / \fBLowerLayer\fR [\fIoffset\fR] .RS 4 Raise the window up to the layer above, or lower it to the layer below\&. See \fIfluxbox(1)\fR
M src/CurrentWindowCmd.ccsrc/CurrentWindowCmd.cc

@@ -52,12 +52,8 @@ else if (command == "maximizehorizontal")

return new CurrentWindowCmd(&FluxboxWindow::maximizeHorizontal); else if (command == "raise") return new CurrentWindowCmd(&FluxboxWindow::raise); - else if (command == "raiselayer") - return new CurrentWindowCmd(&FluxboxWindow::raiseLayer); else if (command == "lower") return new CurrentWindowCmd(&FluxboxWindow::lower); - else if (command == "lowerlayer") - return new CurrentWindowCmd(&FluxboxWindow::lowerLayer); else if (command == "close") return new CurrentWindowCmd(&FluxboxWindow::close); else if (command == "killwindow" || command == "kill")

@@ -95,9 +91,7 @@ REGISTER_COMMAND_PARSER(maximize, createCurrentWindowCmd, void);

REGISTER_COMMAND_PARSER(maximizevertical, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(maximizehorizontal, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(raise, createCurrentWindowCmd, void); -REGISTER_COMMAND_PARSER(raiselayer, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(lower, createCurrentWindowCmd, void); -REGISTER_COMMAND_PARSER(lowerlayer, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(close, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(killwindow, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(kill, createCurrentWindowCmd, void);

@@ -464,6 +458,25 @@ REGISTER_COMMAND_PARSER(setlayer, SetLayerCmd::parse, void);

void SetLayerCmd::real_execute() { fbwindow().moveToLayer(m_layer); +} + +FbTk::Command<void> *ChangeLayerCmd::parse(const string &command, + const string &args, bool trusted) { + int num = 2; + FbTk_istringstream iss(args.c_str()); + iss >> num; + if (command == "raiselayer") + return new ChangeLayerCmd(-num); + else if (command == "lowerlayer") + return new ChangeLayerCmd(num); + return 0; +} + +REGISTER_COMMAND_PARSER(raiselayer, ChangeLayerCmd::parse, void); +REGISTER_COMMAND_PARSER(lowerlayer, ChangeLayerCmd::parse, void); + +void ChangeLayerCmd::real_execute() { + fbwindow().changeLayer(m_diff); } namespace {
M src/CurrentWindowCmd.hhsrc/CurrentWindowCmd.hh

@@ -255,6 +255,17 @@ private:

int m_layer; }; +class ChangeLayerCmd: public WindowHelperCmd { +public: + explicit ChangeLayerCmd(int diff): m_diff(diff) { } + static FbTk::Command<void> *parse(const std::string &command, + const std::string &args, bool trusted); +protected: + void real_execute(); +private: + int m_diff; +}; + class MatchCmd: public WindowHelperBoolCmd { public: MatchCmd(const std::string &pat): m_pat(pat.c_str()) { };
M src/Window.ccsrc/Window.cc

@@ -1697,14 +1697,9 @@ tempRaiseFluxboxWindow(*this);

} -void FluxboxWindow::raiseLayer() { - moveToLayer(m_state.layernum-1); +void FluxboxWindow::changeLayer(int diff) { + moveToLayer(m_state.layernum+diff); } - -void FluxboxWindow::lowerLayer() { - moveToLayer(m_state.layernum+1); -} - void FluxboxWindow::moveToLayer(int layernum, bool force) { #ifdef DEBUG
M src/Window.hhsrc/Window.hh

@@ -243,8 +243,7 @@ void setIconic(bool val);

void raise(); void lower(); void tempRaise(); - void raiseLayer(); - void lowerLayer(); + void changeLayer(int diff); /// moves the window to a new layer void moveToLayer(int layernum, bool force = false); int getOnHead() const;