SOURCES: compiz-switcher-all-desktops.patch (NEW) - switch windows...
wolf
wolf at pld-linux.org
Wed Feb 22 21:58:00 CET 2006
Author: wolf Date: Wed Feb 22 20:58:00 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- switch windows on all/current desktop option
---- Files affected:
SOURCES:
compiz-switcher-all-desktops.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/compiz-switcher-all-desktops.patch
diff -u /dev/null SOURCES/compiz-switcher-all-desktops.patch:1.1
--- /dev/null Wed Feb 22 21:58:00 2006
+++ SOURCES/compiz-switcher-all-desktops.patch Wed Feb 22 21:57:55 2006
@@ -0,0 +1,74 @@
+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 at 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;
+ }
+
================================================================
More information about the pld-cvs-commit
mailing list