summaryrefslogtreecommitdiff
path: root/openbox/action.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-06 05:51:08 +0000
committerDana Jansens <danakj@orodu.net>2007-05-06 05:51:08 +0000
commita7f65a818c48e272aa9c8c49f2339b46b794078e (patch)
treecfa2dff31be09bf386c09edd4ae6f8e22ca2a735 /openbox/action.c
parent857245960e4a35f9307f1b6124a4b7b4e726298b (diff)
add an allDesktops option to Next/PreviousWindow to alt-tab across all desktops.
Diffstat (limited to 'openbox/action.c')
-rw-r--r--openbox/action.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/openbox/action.c b/openbox/action.c
index 797552f6..e056487f 100644
--- a/openbox/action.c
+++ b/openbox/action.c
@@ -293,6 +293,7 @@ void setup_action_cycle_windows_next(ObAction **a, ObUserAction uact)
(*a)->data.cycle.forward = TRUE;
(*a)->data.cycle.dialog = TRUE;
(*a)->data.cycle.dock_windows = FALSE;
+ (*a)->data.cycle.all_desktops = FALSE;
}
void setup_action_cycle_windows_previous(ObAction **a, ObUserAction uact)
@@ -302,6 +303,7 @@ void setup_action_cycle_windows_previous(ObAction **a, ObUserAction uact)
(*a)->data.cycle.forward = FALSE;
(*a)->data.cycle.dialog = TRUE;
(*a)->data.cycle.dock_windows = FALSE;
+ (*a)->data.cycle.all_desktops = FALSE;
}
void setup_action_movefromedge_north(ObAction **a, ObUserAction uact)
@@ -1009,6 +1011,9 @@ ObAction *action_parse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
act->data.cycle.dialog = parse_bool(doc, n);
if ((n = parse_find_node("panels", node->xmlChildrenNode)))
act->data.cycle.dock_windows = parse_bool(doc, n);
+ if ((n = parse_find_node("allDesktops",
+ node->xmlChildrenNode)))
+ act->data.cycle.all_desktops = parse_bool(doc, n);
} else if (act->func == action_directional_focus) {
if ((n = parse_find_node("dialog", node->xmlChildrenNode)))
act->data.interdiraction.dialog = parse_bool(doc, n);
@@ -1512,7 +1517,7 @@ void action_send_to_desktop(union ActionData *data)
data->sendto.desk == DESKTOP_ALL) {
client_set_desktop(c, data->sendto.desk, data->sendto.follow);
if (data->sendto.follow)
- screen_set_desktop(data->sendto.desk);
+ screen_set_desktop(data->sendto.desk, TRUE);
}
}
@@ -1529,12 +1534,12 @@ void action_desktop(union ActionData *data)
if (data->desktop.desk < screen_num_desktops ||
data->desktop.desk == DESKTOP_ALL)
{
- screen_set_desktop(data->desktop.desk);
+ screen_set_desktop(data->desktop.desk, TRUE);
if (data->inter.any.interactive)
screen_desktop_popup(data->desktop.desk, TRUE);
}
} else if (data->inter.cancel) {
- screen_set_desktop(first);
+ screen_set_desktop(first, TRUE);
}
if (!data->inter.any.interactive || data->inter.final) {
@@ -1557,7 +1562,7 @@ void action_desktop_dir(union ActionData *data)
!data->sendtodir.inter.final ||
data->sendtodir.inter.cancel)
{
- screen_set_desktop(d);
+ screen_set_desktop(d, TRUE);
}
}
@@ -1579,13 +1584,13 @@ void action_send_to_desktop_dir(union ActionData *data)
{
client_set_desktop(c, d, data->sendtodir.follow);
if (data->sendtodir.follow)
- screen_set_desktop(d);
+ screen_set_desktop(d, TRUE);
}
}
void action_desktop_last(union ActionData *data)
{
- screen_set_desktop(screen_last_desktop);
+ screen_set_desktop(screen_last_desktop, TRUE);
}
void action_toggle_decorations(union ActionData *data)
@@ -1771,6 +1776,7 @@ void action_cycle_windows(union ActionData *data)
event_halt_focus_delay();
focus_cycle(data->cycle.forward,
+ data->cycle.all_desktops,
data->cycle.dock_windows,
data->cycle.linear, data->any.interactive,
data->cycle.dialog,