all repos — fluxbox @ fc192b1161bf9d1ca0ca9a35397c99ee1a41c7f3

custom fork of the fluxbox windowmanager

allow to override 'FocusNewWindow' via .fluxbox/apps
Peter Hercek hercek@users.sourceforge.net
commit

fc192b1161bf9d1ca0ca9a35397c99ee1a41c7f3

parent

5f6694ca14d599bee6c56700d88ca86ff1126de9

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

jump to
M doc/asciidoc/fluxbox-apps.txtdoc/asciidoc/fluxbox-apps.txt

@@ -156,6 +156,10 @@

*[Tab]* {'bool'}:: Whether the window has tabs enabled. +*[FocusNewWindow]* {'bool'}:: + If enabled, a new window will grab X focus as soon as it is opened. + If disabled, a new window will not grab X focus as soon as it is opened. + *[FocusHidden]* {'bool'}:: If enabled, the window will not appear in 'NextWindow'/'PrevWindow' lists.
M src/Remember.ccsrc/Remember.cc

@@ -86,6 +86,7 @@ void forgetDecostate() { decostate_remember = false; }

void forgetFocusHiddenstate() { focushiddenstate_remember= false; } void forgetIconHiddenstate() { iconhiddenstate_remember= false; } void forgetStuckstate() { stuckstate_remember = false; } + void forgetFocusNewWindow() { focusnewwindow_remember = false; } void forgetJumpworkspace() { jumpworkspace_remember = false; } void forgetLayer() { layer_remember = false; } void forgetSaveOnClose() { save_on_close_remember = false; }

@@ -115,6 +116,8 @@ void rememberDecostate(unsigned int state)

{ decostate = state; decostate_remember = true; } void rememberStuckstate(bool state) { stuckstate = state; stuckstate_remember = true; } + void rememberFocusNewWindow(bool state) + { focusnewwindow = state; focusnewwindow_remember = true; } void rememberJumpworkspace(bool state) { jumpworkspace = state; jumpworkspace_remember = true; } void rememberLayer(int layernum)

@@ -159,6 +162,9 @@

bool stuckstate_remember; bool stuckstate; + bool focusnewwindow_remember; + bool focusnewwindow; + bool focushiddenstate_remember; bool focushiddenstate;

@@ -209,6 +215,7 @@ layer_remember =

position_remember = shadedstate_remember = stuckstate_remember = + focusnewwindow_remember = tabstate_remember = workspace_remember = head_remember =

@@ -527,6 +534,8 @@ break;

} } else if (str_key == "sticky") { app.rememberStuckstate((strcasecmp(str_label.c_str(), "yes") == 0)); + } else if (str_key == "focusnewwindow") { + app.rememberFocusNewWindow((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "minimized") { app.rememberMinimizedstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "maximized") {

@@ -980,6 +989,9 @@ }

} if (a.stuckstate_remember) { apps_file << " [Sticky]\t{" << ((a.stuckstate)?"yes":"no") << "}" << endl; + } + if (a.focusnewwindow_remember) { + apps_file << " [FocusNewWindow]\t{" << ((a.focusnewwindow)?"yes":"no") << "}" << endl; } if (a.minimizedstate_remember) { apps_file << " [Minimized]\t{" << ((a.minimizedstate)?"yes":"no") << "}" << endl;

@@ -1052,6 +1064,9 @@ break;

case REM_STUCKSTATE: return app->stuckstate_remember; break; + case REM_FOCUSNEWWINDOW: + return app->focusnewwindow_remember; + break; case REM_MINIMIZEDSTATE: return app->minimizedstate_remember; break;

@@ -1128,6 +1143,9 @@ app->rememberDecostate(win->decorationMask());

break; case REM_STUCKSTATE: app->rememberStuckstate(win->isStuck()); + break; + case REM_FOCUSNEWWINDOW: + app->rememberFocusNewWindow(win->isFocusNew()); break; case REM_MINIMIZEDSTATE: app->rememberMinimizedstate(win->isIconic());

@@ -1189,6 +1207,9 @@ break;

case REM_STUCKSTATE: app->forgetStuckstate(); break; + case REM_FOCUSNEWWINDOW: + app->forgetFocusNewWindow(); + break; case REM_MINIMIZEDSTATE: app->forgetMinimizedstate(); break;

@@ -1290,6 +1311,9 @@ // if inconsistent...

if ((win.isStuck() && !app->stuckstate) || (!win.isStuck() && app->stuckstate)) win.stick(); // toggles + + if (app->focusnewwindow_remember) + win.setFocusNew(app->focusnewwindow); if (app->minimizedstate_remember) { // if inconsistent...
M src/Remember.hhsrc/Remember.hh

@@ -73,6 +73,7 @@ REM_ALPHA,

REM_MINIMIZEDSTATE, REM_MAXIMIZEDSTATE, REM_FULLSCREENSTATE, + REM_FOCUSNEWWINDOW, REM_LASTATTRIB // not actually used };
M src/Window.hhsrc/Window.hh

@@ -387,6 +387,7 @@ bool isResizable() const { return functions.resize; }

bool isClosable() const { return functions.close; } bool isMoveable() const { return functions.move; } bool isStuck() const { return m_state.stuck; } + bool isFocusNew() const { return m_focus_new; } bool hasTitlebar() const { return decorations.titlebar; } bool isMoving() const { return moving; } bool isResizing() const { return resizing; }