#! /bin/sh /usr/share/dpatch/dpatch-run ## 03_nextprev-xinerama.dpatch by Nico Golde ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: No description. @DPATCH@ diff -urNad openbox-3.4.7.2~/openbox/actions/moveresizeto.c openbox-3.4.7.2/openbox/actions/moveresizeto.c --- openbox-3.4.7.2~/openbox/actions/moveresizeto.c 2008-04-14 01:22:11.000000000 +0200 +++ openbox-3.4.7.2/openbox/actions/moveresizeto.c 2008-05-05 22:44:35.000000000 +0200 @@ -6,7 +6,9 @@ enum { CURRENT_MONITOR = -1, - ALL_MONITORS = -2 + ALL_MONITORS = -2, + NEXT_MONITOR = -3, + PREV_MONITOR = -4 }; typedef struct { @@ -96,6 +98,10 @@ if (g_ascii_strcasecmp(s, "current") != 0) { if (!g_ascii_strcasecmp(s, "all")) o->monitor = ALL_MONITORS; + else if(!g_ascii_strcasecmp(s, "next")) + o->monitor = NEXT_MONITOR; + else if(!g_ascii_strcasecmp(s, "prev")) + o->monitor = PREV_MONITOR; else o->monitor = parse_int(doc, n) - 1; } @@ -144,6 +150,9 @@ cmon = client_monitor(c); if (mon == CURRENT_MONITOR) mon = cmon; else if (mon == ALL_MONITORS) mon = SCREEN_AREA_ALL_MONITORS; + else if (mon == NEXT_MONITOR) mon = (cmon + 1 > screen_num_monitors - 1) ? 0 : (cmon + 1); + else if (mon == PREV_MONITOR) mon = (cmon == 0) ? (screen_num_monitors - 1) : (cmon - 1); + area = screen_area(c->desktop, mon, NULL); carea = screen_area(c->desktop, cmon, NULL);