diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | doc/asciidoc/fluxbox-keys.txt | 2 | ||||
-rw-r--r-- | doc/fluxbox-keys.5.in | 2 | ||||
-rw-r--r-- | src/CurrentWindowCmd.cc | 25 | ||||
-rw-r--r-- | src/CurrentWindowCmd.hh | 11 | ||||
-rw-r--r-- | src/Window.cc | 9 | ||||
-rw-r--r-- | src/Window.hh | 3 |
7 files changed, 37 insertions, 17 deletions
@@ -1,6 +1,8 @@ | |||
1 | (Format: Year/Month/Day) | 1 | (Format: Year/Month/Day) |
2 | Changes for 1.1.2 | 2 | Changes for 1.1.2 |
3 | *09/06/28: | 3 | *09/06/28: |
4 | * Make Raise/LowerLayer commands accept integer argument, defualt 2 (Mark) | ||
5 | CurrentWindowCmd.cc/hh Window.cc/hh | ||
4 | * Change default toolbar head to 1 (Mark) | 6 | * Change default toolbar head to 1 (Mark) |
5 | Toolbar.cc | 7 | Toolbar.cc |
6 | * Add window menu and alt-tab to error case for keys file (Mark) | 8 | * Add window menu and alt-tab to error case for keys file (Mark) |
diff --git a/doc/asciidoc/fluxbox-keys.txt b/doc/asciidoc/fluxbox-keys.txt index ae9abb0..58f59b1 100644 --- a/doc/asciidoc/fluxbox-keys.txt +++ b/doc/asciidoc/fluxbox-keys.txt | |||
@@ -195,7 +195,7 @@ These commands ordinarily affect only the currently focused window. The | |||
195 | Reorder this window to the top or bottom of the window stack, within | 195 | Reorder this window to the top or bottom of the window stack, within |
196 | its current layer. See 'fluxbox(1)' for a discussion of layers. | 196 | its current layer. See 'fluxbox(1)' for a discussion of layers. |
197 | 197 | ||
198 | *RaiseLayer* / *LowerLayer*:: | 198 | *RaiseLayer* / *LowerLayer* ['offset']:: |
199 | Raise the window up to the layer above, or lower it to the layer | 199 | Raise the window up to the layer above, or lower it to the layer |
200 | below. See 'fluxbox(1)' for a discussion of layers. | 200 | below. See 'fluxbox(1)' for a discussion of layers. |
201 | 201 | ||
diff --git a/doc/fluxbox-keys.5.in b/doc/fluxbox-keys.5.in index f1ee22f..1420162 100644 --- a/doc/fluxbox-keys.5.in +++ b/doc/fluxbox-keys.5.in | |||
@@ -278,7 +278,7 @@ Reorder this window to the top or bottom of the window stack, within its current | |||
278 | for a discussion of layers\&. | 278 | for a discussion of layers\&. |
279 | .RE | 279 | .RE |
280 | .PP | 280 | .PP |
281 | \fBRaiseLayer\fR / \fBLowerLayer\fR | 281 | \fBRaiseLayer\fR / \fBLowerLayer\fR [\fIoffset\fR] |
282 | .RS 4 | 282 | .RS 4 |
283 | Raise the window up to the layer above, or lower it to the layer below\&. See | 283 | Raise the window up to the layer above, or lower it to the layer below\&. See |
284 | \fIfluxbox(1)\fR | 284 | \fIfluxbox(1)\fR |
diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc index dfb5c19..6cb5c08 100644 --- a/src/CurrentWindowCmd.cc +++ b/src/CurrentWindowCmd.cc | |||
@@ -52,12 +52,8 @@ FbTk::Command<void> *createCurrentWindowCmd(const std::string &command, | |||
52 | return new CurrentWindowCmd(&FluxboxWindow::maximizeHorizontal); | 52 | return new CurrentWindowCmd(&FluxboxWindow::maximizeHorizontal); |
53 | else if (command == "raise") | 53 | else if (command == "raise") |
54 | return new CurrentWindowCmd(&FluxboxWindow::raise); | 54 | return new CurrentWindowCmd(&FluxboxWindow::raise); |
55 | else if (command == "raiselayer") | ||
56 | return new CurrentWindowCmd(&FluxboxWindow::raiseLayer); | ||
57 | else if (command == "lower") | 55 | else if (command == "lower") |
58 | return new CurrentWindowCmd(&FluxboxWindow::lower); | 56 | return new CurrentWindowCmd(&FluxboxWindow::lower); |
59 | else if (command == "lowerlayer") | ||
60 | return new CurrentWindowCmd(&FluxboxWindow::lowerLayer); | ||
61 | else if (command == "close") | 57 | else if (command == "close") |
62 | return new CurrentWindowCmd(&FluxboxWindow::close); | 58 | return new CurrentWindowCmd(&FluxboxWindow::close); |
63 | else if (command == "killwindow" || command == "kill") | 59 | else if (command == "killwindow" || command == "kill") |
@@ -95,9 +91,7 @@ REGISTER_COMMAND_PARSER(maximize, createCurrentWindowCmd, void); | |||
95 | REGISTER_COMMAND_PARSER(maximizevertical, createCurrentWindowCmd, void); | 91 | REGISTER_COMMAND_PARSER(maximizevertical, createCurrentWindowCmd, void); |
96 | REGISTER_COMMAND_PARSER(maximizehorizontal, createCurrentWindowCmd, void); | 92 | REGISTER_COMMAND_PARSER(maximizehorizontal, createCurrentWindowCmd, void); |
97 | REGISTER_COMMAND_PARSER(raise, createCurrentWindowCmd, void); | 93 | REGISTER_COMMAND_PARSER(raise, createCurrentWindowCmd, void); |
98 | REGISTER_COMMAND_PARSER(raiselayer, createCurrentWindowCmd, void); | ||
99 | REGISTER_COMMAND_PARSER(lower, createCurrentWindowCmd, void); | 94 | REGISTER_COMMAND_PARSER(lower, createCurrentWindowCmd, void); |
100 | REGISTER_COMMAND_PARSER(lowerlayer, createCurrentWindowCmd, void); | ||
101 | REGISTER_COMMAND_PARSER(close, createCurrentWindowCmd, void); | 95 | REGISTER_COMMAND_PARSER(close, createCurrentWindowCmd, void); |
102 | REGISTER_COMMAND_PARSER(killwindow, createCurrentWindowCmd, void); | 96 | REGISTER_COMMAND_PARSER(killwindow, createCurrentWindowCmd, void); |
103 | REGISTER_COMMAND_PARSER(kill, createCurrentWindowCmd, void); | 97 | REGISTER_COMMAND_PARSER(kill, createCurrentWindowCmd, void); |
@@ -466,6 +460,25 @@ void SetLayerCmd::real_execute() { | |||
466 | fbwindow().moveToLayer(m_layer); | 460 | fbwindow().moveToLayer(m_layer); |
467 | } | 461 | } |
468 | 462 | ||
463 | FbTk::Command<void> *ChangeLayerCmd::parse(const string &command, | ||
464 | const string &args, bool trusted) { | ||
465 | int num = 2; | ||
466 | FbTk_istringstream iss(args.c_str()); | ||
467 | iss >> num; | ||
468 | if (command == "raiselayer") | ||
469 | return new ChangeLayerCmd(-num); | ||
470 | else if (command == "lowerlayer") | ||
471 | return new ChangeLayerCmd(num); | ||
472 | return 0; | ||
473 | } | ||
474 | |||
475 | REGISTER_COMMAND_PARSER(raiselayer, ChangeLayerCmd::parse, void); | ||
476 | REGISTER_COMMAND_PARSER(lowerlayer, ChangeLayerCmd::parse, void); | ||
477 | |||
478 | void ChangeLayerCmd::real_execute() { | ||
479 | fbwindow().changeLayer(m_diff); | ||
480 | } | ||
481 | |||
469 | namespace { | 482 | namespace { |
470 | class SetTitleDialog: public TextDialog, public FbTk::Observer { | 483 | class SetTitleDialog: public TextDialog, public FbTk::Observer { |
471 | public: | 484 | public: |
diff --git a/src/CurrentWindowCmd.hh b/src/CurrentWindowCmd.hh index 32cc5f0..edf00fa 100644 --- a/src/CurrentWindowCmd.hh +++ b/src/CurrentWindowCmd.hh | |||
@@ -255,6 +255,17 @@ private: | |||
255 | int m_layer; | 255 | int m_layer; |
256 | }; | 256 | }; |
257 | 257 | ||
258 | class ChangeLayerCmd: public WindowHelperCmd { | ||
259 | public: | ||
260 | explicit ChangeLayerCmd(int diff): m_diff(diff) { } | ||
261 | static FbTk::Command<void> *parse(const std::string &command, | ||
262 | const std::string &args, bool trusted); | ||
263 | protected: | ||
264 | void real_execute(); | ||
265 | private: | ||
266 | int m_diff; | ||
267 | }; | ||
268 | |||
258 | class MatchCmd: public WindowHelperBoolCmd { | 269 | class MatchCmd: public WindowHelperBoolCmd { |
259 | public: | 270 | public: |
260 | MatchCmd(const std::string &pat): m_pat(pat.c_str()) { }; | 271 | MatchCmd(const std::string &pat): m_pat(pat.c_str()) { }; |
diff --git a/src/Window.cc b/src/Window.cc index 825c050..defa6cc 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1697,15 +1697,10 @@ void FluxboxWindow::tempRaise() { | |||
1697 | } | 1697 | } |
1698 | 1698 | ||
1699 | 1699 | ||
1700 | void FluxboxWindow::raiseLayer() { | 1700 | void FluxboxWindow::changeLayer(int diff) { |
1701 | moveToLayer(m_state.layernum-1); | 1701 | moveToLayer(m_state.layernum+diff); |
1702 | } | 1702 | } |
1703 | 1703 | ||
1704 | void FluxboxWindow::lowerLayer() { | ||
1705 | moveToLayer(m_state.layernum+1); | ||
1706 | } | ||
1707 | |||
1708 | |||
1709 | void FluxboxWindow::moveToLayer(int layernum, bool force) { | 1704 | void FluxboxWindow::moveToLayer(int layernum, bool force) { |
1710 | #ifdef DEBUG | 1705 | #ifdef DEBUG |
1711 | cerr<<"FluxboxWindow("<<title()<<")::moveToLayer("<<layernum<<")"<<endl; | 1706 | cerr<<"FluxboxWindow("<<title()<<")::moveToLayer("<<layernum<<")"<<endl; |
diff --git a/src/Window.hh b/src/Window.hh index bf177b4..92d20d7 100644 --- a/src/Window.hh +++ b/src/Window.hh | |||
@@ -243,8 +243,7 @@ public: | |||
243 | void raise(); | 243 | void raise(); |
244 | void lower(); | 244 | void lower(); |
245 | void tempRaise(); | 245 | void tempRaise(); |
246 | void raiseLayer(); | 246 | void changeLayer(int diff); |
247 | void lowerLayer(); | ||
248 | /// moves the window to a new layer | 247 | /// moves the window to a new layer |
249 | void moveToLayer(int layernum, bool force = false); | 248 | void moveToLayer(int layernum, bool force = false); |
250 | int getOnHead() const; | 249 | int getOnHead() const; |