summaryrefslogtreecommitdiff
path: root/openbox/actions
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2008-03-06 20:06:38 +0100
committerDana Jansens <danakj@orodu.net>2010-05-20 17:19:05 -0400
commitfa39954c9dd5e5212816d0b5006451734137a74c (patch)
tree168ff1b095c821fd198945514ded1571789a6b0a /openbox/actions
parent46ca54fd81096b466e51eace79d0761b2c4923f7 (diff)
Allow sending windows on other desktops to the current desktop.
Diffstat (limited to 'openbox/actions')
-rw-r--r--openbox/actions/desktop.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/openbox/actions/desktop.c b/openbox/actions/desktop.c
index 04b0bdd5..9c8d2a7b 100644
--- a/openbox/actions/desktop.c
+++ b/openbox/actions/desktop.c
@@ -6,6 +6,7 @@
typedef enum {
LAST,
+ CURRENT,
RELATIVE,
ABSOLUTE
} SwitchType;
@@ -168,6 +169,8 @@ static gpointer setup_func(xmlNodePtr node,
gchar *s = obt_xml_node_string(n);
if (!g_ascii_strcasecmp(s, "last"))
o->type = LAST;
+ else if (!g_ascii_strcasecmp(s, "current"))
+ o->type = CURRENT;
else if (!g_ascii_strcasecmp(s, "next")) {
o->type = RELATIVE;
o->u.rel.linear = TRUE;
@@ -272,6 +275,9 @@ static gboolean run_func(ObActionsData *data, gpointer options)
case LAST:
d = screen_last_desktop;
break;
+ case CURRENT:
+ d = screen_desktop;
+ break;
case ABSOLUTE:
d = o->u.abs.desktop;
break;
@@ -283,7 +289,9 @@ static gboolean run_func(ObActionsData *data, gpointer options)
g_assert_not_reached();
}
- if (d < screen_num_desktops && d != screen_desktop) {
+ if (d < screen_num_desktops &&
+ (d != screen_desktop ||
+ (data->client && data->client->desktop != screen_desktop))) {
gboolean go = TRUE;
actions_client_move(data, TRUE);