summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-03-12 02:34:34 +0000
committerDana Jansens <danakj@orodu.net>2007-03-12 02:34:34 +0000
commitd113b9f33fb7031add7026d123f34b31888d7411 (patch)
tree106655c2eeaf08628644891ce9d8c11c43d4ac19
parent2244bc036a9c96704675318dc382ea3abd6f3fdf (diff)
ok this is from prevous changes but has a bunch of debug stuff in it
-rw-r--r--openbox/focus.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index a84d253a..7b40db5e 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -256,18 +256,10 @@ ObClient* focus_fallback_target(ObFocusFallbackType type, ObClient *old)
if (!config_focus_follow || config_focus_last)
trans = TRUE;
- else {
- if ((target = client_under_pointer())) {
- GSList *sit;
-
- sit = client_search_top_transients(target);
- for (; sit; sit = g_slist_next(sit))
- if (client_search_transient(sit->data, old)) {
- trans = TRUE;
- break;
- }
- }
- }
+ else if ((target = client_under_pointer()) &&
+ (client_search_transient
+ (client_search_top_parent(target), old)))
+ trans = TRUE;
/* try for transient relations */
if (trans) {
@@ -283,24 +275,33 @@ ObClient* focus_fallback_target(ObFocusFallbackType type, ObClient *old)
if (sit->data == it->data)
if ((target =
focus_fallback_transient(sit->data, old)))
+ {
+ ob_debug("found in transient #1\n");
return target;
+ }
}
}
} else {
if ((target =
focus_fallback_transient(old->transient_for, old)))
+ {
+ ob_debug("found in transient #2\n");
return target;
+ }
}
}
}
}
+ ob_debug("trying pointer stuff\n");
if (config_focus_follow &&
(type == OB_FOCUS_FALLBACK_UNFOCUSING || !config_focus_last))
{
if ((target = client_under_pointer()))
- if (client_normal(target) && client_can_focus(target))
+ if (client_normal(target) && client_can_focus(target)) {
+ ob_debug("found in pointer stuff\n");
return target;
+ }
}
#if 0
@@ -317,10 +318,13 @@ ObClient* focus_fallback_target(ObFocusFallbackType type, ObClient *old)
}
#endif
+ ob_debug("trying the focus order\n");
for (it = focus_order[screen_desktop]; it; it = g_list_next(it))
if (type != OB_FOCUS_FALLBACK_UNFOCUSING || it->data != old)
- if (client_normal(it->data) && client_can_focus(it->data))
+ if (client_normal(it->data) && client_can_focus(it->data)) {
+ ob_debug("found in focus order\n");
return it->data;
+ }
/* XXX fallback to the "desktop window" if one exists ?
could store it while going through all the windows in the loop right