make Raise/LowerLayer accept integer argument for number of layers, default 2
This commit is contained in:
parent
c1d9ae5068
commit
5f9f2475b7
7 changed files with 37 additions and 17 deletions
|
@ -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)
|
||||
|
|
|
@ -195,7 +195,7 @@ These commands ordinarily affect only the currently focused window. The
|
|||
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.
|
||||
|
||||
|
|
|
@ -278,7 +278,7 @@ Reorder this window to the top or bottom of the window stack, within its current
|
|||
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
|
||||
|
|
|
@ -52,12 +52,8 @@ FbTk::Command<void> *createCurrentWindowCmd(const std::string &command,
|
|||
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);
|
||||
|
@ -466,6 +460,25 @@ 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 {
|
||||
class SetTitleDialog: public TextDialog, public FbTk::Observer {
|
||||
public:
|
||||
|
|
|
@ -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()) { };
|
||||
|
|
|
@ -1697,15 +1697,10 @@ void FluxboxWindow::tempRaise() {
|
|||
}
|
||||
|
||||
|
||||
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
|
||||
cerr<<"FluxboxWindow("<<title()<<")::moveToLayer("<<layernum<<")"<<endl;
|
||||
|
|
|
@ -243,8 +243,7 @@ public:
|
|||
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;
|
||||
|
|
Loading…
Reference in a new issue