summaryrefslogtreecommitdiff
path: root/openbox/focus.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-06 05:19:19 +0000
committerDana Jansens <danakj@orodu.net>2007-05-06 05:19:19 +0000
commit1bf9de380991206d4afa104cd31c567583f288c2 (patch)
tree4324eaf88c9e11e276557dd72e4c570c29860c99 /openbox/focus.c
parenta6aaabe62c3651169dda9a1a34bcec64dad4ee92 (diff)
refactor all the session stuff. yay, it works properly now.
make sessions save the desktop being displayed. can we get rid of config_firstdesk now? refactor startup a bit. focus the window that was focused when we were restarted. have clients properly restore their session state. add undecorated to the saved session state for clients.
Diffstat (limited to 'openbox/focus.c')
-rw-r--r--openbox/focus.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index 94257205..35a2e027 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -232,24 +232,19 @@ ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
ObClient *c = it->data;
/* fallback focus to a window if:
1. it is actually focusable, cuz if it's not then we're sending
- focus off to nothing
- 2. it is validated. if the window is about to disappear, then
- don't try focus it.
- 3. it is visible on the current desktop. this ignores
- omnipresent windows, which are problematic in their own rite.
- 4. it's not iconic
- 5. it is a normal type window, don't fall back onto a dock or
+ focus off to nothing. this includes if it is visible right now
+ 2. it is on the current desktop. this ignores omnipresent
+ windows, which are problematic in their own rite.
+ 3. it is a normal type window, don't fall back onto a dock or
a splashscreen or a desktop window (save the desktop as a
backup fallback though)
*/
- if (client_can_focus(c) && !c->iconic)
+ if (client_can_focus(c))
{
if (c->desktop == screen_desktop && client_normal(c)) {
ob_debug_type(OB_DEBUG_FOCUS, "found in focus order\n");
return it->data;
- } else if ((c->desktop == screen_desktop ||
- c->desktop == DESKTOP_ALL) &&
- c->type == OB_CLIENT_TYPE_DESKTOP &&
+ } else if (c->type == OB_CLIENT_TYPE_DESKTOP &&
desktop == NULL)
desktop = c;
}