diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-06 05:19:19 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-06 05:19:19 +0000 |
| commit | 1bf9de380991206d4afa104cd31c567583f288c2 (patch) | |
| tree | 4324eaf88c9e11e276557dd72e4c570c29860c99 /openbox/focus.c | |
| parent | a6aaabe62c3651169dda9a1a34bcec64dad4ee92 (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.c | 17 |
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; } |
