dont let focus fall back to strange windows like panels, only to normal windows and dialogs
This commit is contained in:
parent
5cf86b186c
commit
fb613db29f
3 changed files with 5 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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; }
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue