all repos — openbox @ fb613db29ffcf1539c91f0ac0ca5d25cb4e593b5

openbox fork - make it a bit more like ryudo

dont let focus fall back to strange windows like panels, only to normal windows and dialogs
Dana Jansens danakj@orodu.net
commit

fb613db29ffcf1539c91f0ac0ca5d25cb4e593b5

parent

5cf86b186c89ffb87f02ab732aa113ce8025dc2a

3 files changed, 5 insertions(+), 2 deletions(-)

jump to
M src/Screen.ccsrc/Screen.cc

@@ -1189,7 +1189,7 @@

BlackboxWindow *win = blackbox->searchWindow(w); if (! win) return; - if (win->isDesktop()) { + if (win->windowType() == BlackboxWindow::Type_Desktop) { // desktop windows cant do anything, so we remove all the normal window // stuff from them, they are only kept around so that we can keep them on // the bottom of the z-order
M src/Window.hhsrc/Window.hh

@@ -321,7 +321,7 @@ inline bool isIconifiable(void) const { return functions & Func_Iconify; }

inline bool isMaximizable(void) const { return functions & Func_Maximize; } inline bool isResizable(void) const { return functions & Func_Resize; } inline bool isClosable(void) const { return functions & Func_Close; } - inline bool isDesktop(void) const { return window_type == Type_Desktop; } + inline WindowType windowType(void) const { return window_type; } inline bool hasTitlebar(void) const { return decorations & Decor_Titlebar; }
M src/Workspace.ccsrc/Workspace.cc

@@ -154,6 +154,9 @@ BlackboxWindowList::iterator it = stackingList.begin(),

end = stackingList.end(); for (; it != end; ++it) { BlackboxWindow *tmp = *it; + if (! (tmp->windowType() == BlackboxWindow::Type_Dialog || + tmp->windowType() == BlackboxWindow::Type_Normal)) + continue; // don't fallback to special windows if (tmp && tmp->setInputFocus()) { // we found our new focus target newfocus = tmp;