dont let focus fall back to strange windows like panels, only to normal windows and dialogs

This commit is contained in:
Dana Jansens 2002-07-16 02:38:26 +00:00
parent 5cf86b186c
commit fb613db29f
3 changed files with 5 additions and 2 deletions

View file

@ -1189,7 +1189,7 @@ void BScreen::manageWindow(Window w) {
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

View file

@ -321,7 +321,7 @@ public:
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; }

View file

@ -154,6 +154,9 @@ void Workspace::focusFallback(const BlackboxWindow *old_window) {
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;