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