summaryrefslogtreecommitdiff
path: root/openbox/focus.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-25 14:26:12 +0000
committerDana Jansens <danakj@orodu.net>2007-05-25 14:26:12 +0000
commit9cb80fc994c09ee62f99f46244b840ce25fd40f4 (patch)
tree45ad9ef6ac44d64a508ca123b4529301a43a1610 /openbox/focus.c
parent9f7554a4fea4f03bf986cf2235f096273176cfd6 (diff)
save the focus_client when falling back
Diffstat (limited to 'openbox/focus.c')
-rw-r--r--openbox/focus.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index 40e18872..0f9f2f1b 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -94,11 +94,10 @@ void focus_set_client(ObClient *client)
}
}
-static ObClient* focus_fallback_target(gboolean allow_refocus)
+static ObClient* focus_fallback_target(gboolean allow_refocus, ObClient *old)
{
GList *it;
ObClient *c;
- ObClient *old = focus_client;
ob_debug_type(OB_DEBUG_FOCUS, "trying pointer stuff\n");
if (config_focus_follow && !config_focus_last)
@@ -167,13 +166,14 @@ static ObClient* focus_fallback_target(gboolean allow_refocus)
ObClient* focus_fallback(gboolean allow_refocus)
{
ObClient *new;
+ ObClient *old = focus_client;
/* unfocus any focused clients.. they can be focused by Pointer events
and such, and then when we try focus them, we won't get a FocusIn
event at all for them. */
focus_nothing();
- new = focus_fallback_target(allow_refocus);
+ new = focus_fallback_target(allow_refocus, old);
return new;
}