summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-15 06:00:00 +0000
committerDana Jansens <danakj@orodu.net>2003-09-15 06:00:00 +0000
commit0855269035e17a1c4702d3cae85c98f46af66191 (patch)
treeb3018ee87d0d796bbe644151d7b102c86ff1203d /openbox
parent52d751ecd67bc063df51c815aa6980a55e2f4eb7 (diff)
fix crashing when doing a directional focus with no windows on the desktop
Diffstat (limited to 'openbox')
-rw-r--r--openbox/focus.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index 9c29345f..0f80a58b 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -280,8 +280,12 @@ void focus_cycle(gboolean forward, gboolean linear,
goto done_cycle;
}
- if (!first) first = focus_client;
- if (!focus_cycle_target) focus_cycle_target = focus_client;
+ if (!focus_order[screen_desktop])
+ goto done_cycle;
+
+ if (!first) first = focus_order[screen_desktop]->data;
+ if (!focus_cycle_target) focus_cycle_target =
+ focus_order[screen_desktop]->data;
if (linear) list = client_list;
else list = focus_order[screen_desktop];
@@ -352,8 +356,12 @@ void focus_directional_cycle(ObDirection dir,
goto done_cycle;
}
- if (!first) first = focus_client;
- if (!focus_cycle_target) focus_cycle_target = focus_client;
+ if (!focus_order[screen_desktop])
+ goto done_cycle;
+
+ if (!first) first = focus_order[screen_desktop]->data;
+ if (!focus_cycle_target) focus_cycle_target =
+ focus_order[screen_desktop]->data;
if ((ft = client_find_directional(focus_cycle_target, dir))) {
if (ft != focus_cycle_target) {/* prevents flicker */