summaryrefslogtreecommitdiff
path: root/openbox/actions/cyclewindows.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-02-03 00:07:21 -0500
committerDana Jansens <danakj@orodu.net>2008-02-03 00:28:02 -0500
commit76464a604ee2999b00b806be25722f7fcac1cd9c (patch)
tree828f01ecb455a14a1f184121cfe164ef0e94eb6a /openbox/actions/cyclewindows.c
parent2924adb9b1addab67983a5276ec6932b7b7933d6 (diff)
combine the old focus cycle popup code with mika's new list-mode popup, and make an action option for it (the old <dialog> option)
Diffstat (limited to 'openbox/actions/cyclewindows.c')
-rw-r--r--openbox/actions/cyclewindows.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/openbox/actions/cyclewindows.c b/openbox/actions/cyclewindows.c
index 36dd66ee..b013b66b 100644
--- a/openbox/actions/cyclewindows.c
+++ b/openbox/actions/cyclewindows.c
@@ -8,13 +8,13 @@
typedef struct {
gboolean linear;
- gboolean dialog;
gboolean dock_windows;
gboolean desktop_windows;
gboolean all_desktops;
gboolean forward;
gboolean bar;
gboolean raise;
+ ObFocusCyclePopupMode dialog_mode;
GSList *actions;
} Options;
@@ -47,13 +47,17 @@ static gpointer setup_func(xmlNodePtr node)
Options *o;
o = g_new0(Options, 1);
- o->dialog = TRUE;
o->bar = TRUE;
+ o->dialog_mode = OB_FOCUS_CYCLE_POPUP_MODE_ICONS;
if ((n = obt_parse_find_node(node, "linear")))
o->linear = obt_parse_node_bool(n);
- if ((n = obt_parse_find_node(node, "dialog")))
- o->dialog = obt_parse_node_bool(n);
+ if ((n = obt_parse_find_node(node, "dialog"))) {
+ if (obt_parse_node_contains(n, "none"))
+ o->dialog_mode = OB_FOCUS_CYCLE_POPUP_MODE_NONE;
+ else if (obt_parse_node_contains(n, "list"))
+ o->dialog_mode = OB_FOCUS_CYCLE_POPUP_MODE_LIST;
+ }
if ((n = obt_parse_find_node(node, "bar")))
o->bar = obt_parse_node_bool(n);
if ((n = obt_parse_find_node(node, "raise")))
@@ -125,7 +129,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
o->linear,
TRUE,
o->bar,
- o->dialog,
+ o->dialog_mode,
FALSE, FALSE);
cycling = TRUE;
@@ -185,7 +189,7 @@ static void end_cycle(gboolean cancel, guint state, Options *o)
o->linear,
TRUE,
o->bar,
- o->dialog,
+ o->dialog_mode,
TRUE, cancel);
cycling = FALSE;