dont let focus fall back to strange windows like panels, only to normal windows and dialogs
Dana Jansens danakj@orodu.net
3 files changed,
5 insertions(+),
2 deletions(-)
M
src/Screen.cc
→
src/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.hh
→
src/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.cc
→
src/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;