summaryrefslogtreecommitdiff
path: root/openbox/focus_cycle.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-06-22 04:59:06 +0000
committerDana Jansens <danakj@orodu.net>2007-06-22 04:59:06 +0000
commit29c4cf4a15bc5fa97ba746b03a5e334f989c645e (patch)
tree2b397651cfb0b269f0fd9519bcefb8894274b73b /openbox/focus_cycle.c
parentfbc7607fbd1a380428a53094e727ac7631871bd4 (diff)
add the activate action. it will replace the focus action, as it can just focus without raising now (or without unshading)
Diffstat (limited to 'openbox/focus_cycle.c')
-rw-r--r--openbox/focus_cycle.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/openbox/focus_cycle.c b/openbox/focus_cycle.c
index 971f116f..22398851 100644
--- a/openbox/focus_cycle.c
+++ b/openbox/focus_cycle.c
@@ -137,7 +137,7 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops,
focus_cycle_all_desktops,
focus_cycle_dock_windows,
focus_cycle_desktop_windows);
- return;
+ return NULL;
} else if (ft != focus_cycle_target) {
focus_cycle_target = ft;
done = TRUE;
@@ -258,12 +258,15 @@ static ObClient *focus_find_directional(ObClient *c, ObDirection dir,
return best_client;
}
-void focus_directional_cycle(ObDirection dir, gboolean dock_windows,
- gboolean desktop_windows, gboolean interactive,
- gboolean dialog, gboolean done, gboolean cancel)
+ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows,
+ gboolean desktop_windows,
+ gboolean interactive,
+ gboolean dialog,
+ gboolean done, gboolean cancel)
{
static ObClient *first = NULL;
ObClient *ft = NULL;
+ ObClient *ret = NULL;
if (cancel) {
focus_cycle_target = NULL;
@@ -313,11 +316,10 @@ void focus_directional_cycle(ObDirection dir, gboolean dock_windows,
focus_cycle_all_desktops,
focus_cycle_dock_windows,
focus_cycle_desktop_windows);
- return;
+ return NULL;
done_cycle:
- if (done && focus_cycle_target)
- client_activate(focus_cycle_target, FALSE, TRUE);
+ if (done && !cancel) ret = focus_cycle_target;
first = NULL;
focus_cycle_target = NULL;
@@ -325,5 +327,5 @@ done_cycle:
focus_cycle_draw_indicator(NULL);
focus_cycle_popup_single_hide();
- return;
+ return ret;
}