From 1bf9de380991206d4afa104cd31c567583f288c2 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 6 May 2007 05:19:19 +0000 Subject: 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. --- openbox/focus.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'openbox/focus.c') 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; } -- cgit v1.2.3