--- /dev/null
+diff -ruN compiz-20060222./plugins/switcher.c compiz-20060222/plugins/switcher.c
+--- compiz-20060222./plugins/switcher.c 2006-02-22 03:27:31.000000000 +0100
++++ compiz-20060222/plugins/switcher.c 2006-02-22 21:47:13.744958456 +0100
+@@ -59,6 +59,8 @@
+ #define SWITCH_TIMESTEP_MAX 50.0f
+ #define SWITCH_TIMESTEP_PRECISION 0.1f
+
++#define SWITCH_ALL_DESKTOPS_DEFAULT TRUE
++
+ static char *winType[] = {
+ "Toolbar",
+ "Utility",
+@@ -84,7 +86,8 @@
+ #define SWITCH_SCREEN_OPTION_SPEED 4
+ #define SWITCH_SCREEN_OPTION_TIMESTEP 5
+ #define SWITCH_SCREEN_OPTION_WINDOW_TYPE 6
+-#define SWITCH_SCREEN_OPTION_NUM 7
++#define SWITCH_SCREEN_OPTION_ALL_DESKTOPS 7
++#define SWITCH_SCREEN_OPTION_NUM 8
+
+ typedef struct _SwitchScreen {
+ PreparePaintScreenProc preparePaintScreen;
+@@ -233,6 +236,11 @@
+ ss->wMask = compWindowTypeMaskFromStringList (&o->value);
+ return TRUE;
+ }
++ break;
++ case SWITCH_SCREEN_OPTION_ALL_DESKTOPS:
++ if (compSetBoolOption (o, value))
++ return TRUE;
++ break;
+ default:
+ break;
+ }
+@@ -325,6 +333,13 @@
+ o->rest.s.nString = nWindowTypeString;
+
+ ss->wMask = compWindowTypeMaskFromStringList (&o->value);
++
++ o = &ss->opt[SWITCH_SCREEN_OPTION_ALL_DESKTOPS];
++ o->name = "all_dekstops";
++ o->shortDesc = "All Desktops";
++ o->longDesc = "Switch between windows on all virtual desktops";
++ o->type = CompOptionTypeBool;
++ o->value.b = SWITCH_ALL_DESKTOPS_DEFAULT;
+ }
+
+ static void
+@@ -341,6 +356,7 @@
+ static Bool
+ isSwitchWin (CompWindow *w)
+ {
++ int workspaceX, winRealX, winWorkspace;
+ SWITCH_SCREEN (w->screen);
+
+ if (!w->mapNum || w->attrib.map_state != IsViewable)
+@@ -355,6 +371,17 @@
+ if (w->state & CompWindowStateSkipPagerMask)
+ return FALSE;
+
++ if (!ss->opt[SWITCH_SCREEN_OPTION_ALL_DESKTOPS].value.b)
++ {
++ /* only switch between windows in the current workspace
++ Tiago Sousa <mirage@kaotik.org> */
++ workspaceX = w->screen->width * w->screen->x;
++ winRealX = w->serverX + workspaceX;
++ winWorkspace = floor((double)winRealX / (double)w->screen->width);
++ if (winWorkspace != w->screen->x)
++ return FALSE;
++ }
++
+ return TRUE;
+ }
+
Source0: %{name}-%{_snap}.tar.bz2
# Source0-md5: 054cfcedab9282f66e5ab89edbd49c35
Patch0: %{name}-wobbly.patch
+Patch1: %{name}-switcher-all-desktops.patch
BuildRequires: QtCore-devel
BuildRequires: QtGui-devel
BuildRequires: avahi-glib-devel
%prep
%setup -q -n %{name}-%{_snap}
%patch0 -p0
+%patch1 -p1
%build
autoreconf -v --install