From 03b4d6654fddf6f89c58058afc063046a289086c Mon Sep 17 00:00:00 2001 From: wolf Date: Wed, 22 Feb 2006 20:58:13 +0000 Subject: [PATCH] - switch windows on all/current desktop option Changed files: compiz-switcher-all-desktops.patch -> 1.1 compiz.spec -> 1.8 --- compiz-switcher-all-desktops.patch | 74 ++++++++++++++++++++++++++++++ compiz.spec | 2 + 2 files changed, 76 insertions(+) create mode 100644 compiz-switcher-all-desktops.patch diff --git a/compiz-switcher-all-desktops.patch b/compiz-switcher-all-desktops.patch new file mode 100644 index 0000000..94c06fd --- /dev/null +++ b/compiz-switcher-all-desktops.patch @@ -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 */ ++ 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; + } + diff --git a/compiz.spec b/compiz.spec index efb88fd..4a12ccb 100644 --- a/compiz.spec +++ b/compiz.spec @@ -13,6 +13,7 @@ Group: X11 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 @@ -51,6 +52,7 @@ Pliki nag %prep %setup -q -n %{name}-%{_snap} %patch0 -p0 +%patch1 -p1 %build autoreconf -v --install -- 2.44.0