allow to override 'FocusNewWindow' via .fluxbox/apps
Peter Hercek hercek@users.sourceforge.net
4 files changed,
30 insertions(+),
0 deletions(-)
M
doc/asciidoc/fluxbox-apps.txt
→
doc/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.cc
→
src/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.hh
→
src/Remember.hh
@@ -73,6 +73,7 @@ REM_ALPHA,
REM_MINIMIZEDSTATE, REM_MAXIMIZEDSTATE, REM_FULLSCREENSTATE, + REM_FOCUSNEWWINDOW, REM_LASTATTRIB // not actually used };
M
src/Window.hh
→
src/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; }