diff options
| author | Mikael Magnusson <mikachu@comhem.se> | 2008-03-06 20:06:38 +0100 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2010-05-20 17:19:05 -0400 |
| commit | fa39954c9dd5e5212816d0b5006451734137a74c (patch) | |
| tree | 168ff1b095c821fd198945514ded1571789a6b0a /openbox/actions | |
| parent | 46ca54fd81096b466e51eace79d0761b2c4923f7 (diff) | |
Allow sending windows on other desktops to the current desktop.
Diffstat (limited to 'openbox/actions')
| -rw-r--r-- | openbox/actions/desktop.c | 10 |
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); |
