Hello community,
here is the log from the commit of package compiz
checked in at Sat Apr 8 00:47:09 CEST 2006.
--------
--- compiz/compiz.changes 2006-04-07 11:17:33.000000000 +0200
+++ compiz/compiz.changes 2006-04-07 22:20:03.000000000 +0200
@@ -1,0 +2,19 @@
+Fri Apr 7 21:08:52 CEST 2006 - danw@suse.de
+
+- Patch in an improved schemas file (and a code patch to fix a bug
+ it exposes) and remove the gconf-dump plugin. Also, after discussion
+ with JP, remove gnome-xgl-switch, since it's sort of a cruel joke at
+ this stage (it only helps you with the easy part of enabling Xgl, not
+ the hard parts).
+
+-------------------------------------------------------------------
+Fri Apr 7 17:52:55 CEST 2006 - dreveman@suse.de
+
+- Changed default key-binding for scale plugin to F11.
+- Fix darkenBack option in scale plugin.
+- Don't start scale effect when some other plugin is running.
+- Add flip_move option for only using edge flipping when moving
+ windows.
+- Fix schemas file. Patch no longer needed.
+
+-------------------------------------------------------------------
Old:
----
compiz-schemas.diff
New:
----
compiz-full-schema.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ compiz.spec ++++++
--- /var/tmp/diff_new_pack.eVlV5D/_old 2006-04-08 00:46:57.000000000 +0200
+++ /var/tmp/diff_new_pack.eVlV5D/_new 2006-04-08 00:46:57.000000000 +0200
@@ -18,7 +18,7 @@
Requires: libpng libdrm gconf2 gtk2 gnome-desktop control-center2 libsvg libsvg-cairo libwnck
Autoreqprov: on
Version: cvs_060407
-Release: 1
+Release: 2
Summary: OpenGL window and compositing manager.
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64
@@ -31,7 +31,7 @@
Patch1: Mesa-configs.diff
Patch2: mesa-tfp-defines-1.patch
Patch3: xgl-switch-desktop.patch
-Patch4: compiz-schemas.diff
+Patch4: compiz-full-schema.patch
%description
Compiz is an OpenGL compositing manager that use
@@ -54,7 +54,7 @@
patch -d Mesa -p0 < $RPM_SOURCE_DIR/Mesa-configs.diff
patch -d Mesa -p0 < $RPM_SOURCE_DIR/mesa-tfp-defines-1.patch
patch -p0 < $RPM_SOURCE_DIR/xgl-switch-desktop.patch
-patch -d compiz-* -p0 < $RPM_SOURCE_DIR/compiz-schemas.diff
+patch -d compiz-* -p0 < $RPM_SOURCE_DIR/compiz-full-schema.patch
%build
PREFIX=/usr
@@ -96,16 +96,17 @@
#
##### xgl-switch
#
-pushd xgl-switch-* || exit 1
-./configure --prefix=/opt/gnome
-make DESTDIR=$RPM_BUILD_ROOT install || exit 1
-popd
+#pushd xgl-switch-* || exit 1
+#./configure --prefix=/opt/gnome
+#make DESTDIR=$RPM_BUILD_ROOT install || exit 1
+#popd
%install
PREFIX=/usr
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates $RPM_BUILD_ROOT$PREFIX
find $RPM_BUILD_ROOT \( -name \*.a -o -name \*.la \) -print -execdir rm \{\} +
rm -rf $RPM_BUILD_ROOT$PREFIX/%_lib/pkgconfig $RPM_BUILD_ROOT$PREFIX/include
+rm -f $RPM_BUILD_ROOT$PREFIX/%_lib/compiz/libgconf-dump.so
%post
opt/gnome/bin/gconftool-2 --shutdown
@@ -127,14 +128,27 @@
#/usr/%_lib/pkgconfig/*.pc
/opt/gnome/%_lib/window-manager-settings/libcompiz*
/opt/gnome/share/gnome/wm-properties/compiz.desktop
-/opt/gnome/bin/gnome-xgl-switch
-/opt/gnome/share/applications/gnome-xgl-switch.desktop
-/opt/gnome/share/control-center-2.0/icons/xgl-switch-capplet.png
-/opt/gnome/share/control-center-2.0/interfaces/gnome-xgl-switch.glade
-/opt/gnome/share/pixmaps/xgl-switch-capplet.png
+#/opt/gnome/bin/gnome-xgl-switch
+#/opt/gnome/share/applications/gnome-xgl-switch.desktop
+#/opt/gnome/share/control-center-2.0/icons/xgl-switch-capplet.png
+#/opt/gnome/share/control-center-2.0/interfaces/gnome-xgl-switch.glade
+#/opt/gnome/share/pixmaps/xgl-switch-capplet.png
/etc/opt/gnome/gconf/schemas/compiz.schemas
%changelog -n compiz
+* Fri Apr 07 2006 - danw@suse.de
+- Patch in an improved schemas file (and a code patch to fix a bug
+ it exposes) and remove the gconf-dump plugin. Also, after discussion
+ with JP, remove gnome-xgl-switch, since it's sort of a cruel joke at
+ this stage (it only helps you with the easy part of enabling Xgl, not
+ the hard parts).
+* Fri Apr 07 2006 - dreveman@suse.de
+- Changed default key-binding for scale plugin to F11.
+- Fix darkenBack option in scale plugin.
+- Don't start scale effect when some other plugin is running.
+- Add flip_move option for only using edge flipping when moving
+ windows.
+- Fix schemas file. Patch no longer needed.
* Fri Apr 07 2006 - dreveman@suse.de
- gconf schemas and key-binding work by Dan Winship and
Radek Doulik.
++++++ compiz-0.0.9.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.9/ChangeLog new/compiz-0.0.9/ChangeLog
--- old/compiz-0.0.9/ChangeLog 2006-04-07 11:03:07.000000000 +0200
+++ new/compiz-0.0.9/ChangeLog 2006-04-07 17:45:28.000000000 +0200
@@ -1,5 +1,16 @@
2006-04-07 David Reveman
+ * plugins/gconf-dump.c: Dump list options correctly.
+
+ * plugins/rotate.c: Add flip_move option, edge flipping is only
+ used when moving windows if this option is enabled.
+ (rotateHandleEvent): Make we don't rotate when some other plugin
+ has grabbed the screen.
+
+ * plugins/scale.c: Change default key-binding to F11.
+ (scaleInitiate): Make sure screen isn't grabbed by some other plugin.
+ (scaleInitScreen): Initialize darkenBack properly.
+
* configure.ac: Bump version to 0.0.9.
* plugins/Makefile.am (CLEANFILES, EXTRA_DIST): Fix.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.9/plugins/Makefile.am new/compiz-0.0.9/plugins/Makefile.am
--- old/compiz-0.0.9/plugins/Makefile.am 2006-04-07 11:01:57.000000000 +0200
+++ new/compiz-0.0.9/plugins/Makefile.am 2006-04-07 11:27:23.000000000 +0200
@@ -49,12 +49,18 @@
if GCONF_PLUGIN
libgconf_la_LDFLAGS = -module -avoid-version -no-undefined
libgconf_la_LIBADD = @COMPIZ_LIBS@ @GCONF_LIBS@
-libgconf_la_SOURCES = gconf.c gconf-compiz-utils.c
+libgconf_la_SOURCES = \
+ gconf.c \
+ gconf-compiz-utils.c \
+ gconf-compiz-utils.h
libgconf_module = libgconf.la
libgconf_dump_la_LDFLAGS = -module -avoid-version -no-undefined
libgconf_dump_la_LIBADD = @COMPIZ_LIBS@ @GCONF_LIBS@
-libgconf_dump_la_SOURCES = gconf-dump.c gconf-compiz-utils.c
+libgconf_dump_la_SOURCES = \
+ gconf-dump.c \
+ gconf-compiz-utils.c \
+ gconf-compiz-utils.h
libgconf_dump_module = libgconf-dump.la
schemadir = $(GCONF_SCHEMA_FILE_DIR)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.9/plugins/Makefile.in new/compiz-0.0.9/plugins/Makefile.in
--- old/compiz-0.0.9/plugins/Makefile.in 2006-04-07 11:02:02.000000000 +0200
+++ new/compiz-0.0.9/plugins/Makefile.in 2006-04-07 11:27:28.000000000 +0200
@@ -65,13 +65,15 @@
am_libfade_la_OBJECTS = fade.lo
libfade_la_OBJECTS = $(am_libfade_la_OBJECTS)
libgconf_dump_la_DEPENDENCIES =
-am__libgconf_dump_la_SOURCES_DIST = gconf-dump.c gconf-compiz-utils.c
+am__libgconf_dump_la_SOURCES_DIST = gconf-dump.c gconf-compiz-utils.c \
+ gconf-compiz-utils.h
@GCONF_PLUGIN_TRUE@am_libgconf_dump_la_OBJECTS = gconf-dump.lo \
@GCONF_PLUGIN_TRUE@ gconf-compiz-utils.lo
libgconf_dump_la_OBJECTS = $(am_libgconf_dump_la_OBJECTS)
@GCONF_PLUGIN_TRUE@am_libgconf_dump_la_rpath = -rpath $(moduledir)
libgconf_la_DEPENDENCIES =
-am__libgconf_la_SOURCES_DIST = gconf.c gconf-compiz-utils.c
+am__libgconf_la_SOURCES_DIST = gconf.c gconf-compiz-utils.c \
+ gconf-compiz-utils.h
@GCONF_PLUGIN_TRUE@am_libgconf_la_OBJECTS = gconf.lo \
@GCONF_PLUGIN_TRUE@ gconf-compiz-utils.lo
libgconf_la_OBJECTS = $(am_libgconf_la_OBJECTS)
@@ -316,11 +318,19 @@
libwater_la_SOURCES = water.c
@GCONF_PLUGIN_TRUE@libgconf_la_LDFLAGS = -module -avoid-version -no-undefined
@GCONF_PLUGIN_TRUE@libgconf_la_LIBADD = @COMPIZ_LIBS@ @GCONF_LIBS@
-@GCONF_PLUGIN_TRUE@libgconf_la_SOURCES = gconf.c gconf-compiz-utils.c
+@GCONF_PLUGIN_TRUE@libgconf_la_SOURCES = \
+@GCONF_PLUGIN_TRUE@ gconf.c \
+@GCONF_PLUGIN_TRUE@ gconf-compiz-utils.c \
+@GCONF_PLUGIN_TRUE@ gconf-compiz-utils.h
+
@GCONF_PLUGIN_TRUE@libgconf_module = libgconf.la
@GCONF_PLUGIN_TRUE@libgconf_dump_la_LDFLAGS = -module -avoid-version -no-undefined
@GCONF_PLUGIN_TRUE@libgconf_dump_la_LIBADD = @COMPIZ_LIBS@ @GCONF_LIBS@
-@GCONF_PLUGIN_TRUE@libgconf_dump_la_SOURCES = gconf-dump.c gconf-compiz-utils.c
+@GCONF_PLUGIN_TRUE@libgconf_dump_la_SOURCES = \
+@GCONF_PLUGIN_TRUE@ gconf-dump.c \
+@GCONF_PLUGIN_TRUE@ gconf-compiz-utils.c \
+@GCONF_PLUGIN_TRUE@ gconf-compiz-utils.h
+
@GCONF_PLUGIN_TRUE@libgconf_dump_module = libgconf-dump.la
@GCONF_PLUGIN_TRUE@schemadir = $(GCONF_SCHEMA_FILE_DIR)
@GCONF_PLUGIN_TRUE@schema_DATA = compiz.schemas
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.9/plugins/compiz.schemas new/compiz-0.0.9/plugins/compiz.schemas
--- old/compiz-0.0.9/plugins/compiz.schemas 2006-04-07 09:19:23.000000000 +0200
+++ new/compiz-0.0.9/plugins/compiz.schemas 2006-04-07 17:40:43.000000000 +0200
@@ -11,8 +11,9 @@
<key>/schemas/apps/compiz/general/allscreens/options/active_plugins</key>
<applyto>/apps/compiz/general/allscreens/options/active_plugins</applyto>
<owner>compiz</owner>
- <type>unknown</type>
- <default>unknown</default>
+ <type>list</type>
+ string
+ <default>[gconf,decoration,wobbly,fade,minimize,cube,rotate,zoom,scale,move,resize,place,switcher,water]</default>
<locale name="C">
<short>Active Plugins</short>
<long>
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.9/plugins/gconf-compiz-utils.h new/compiz-0.0.9/plugins/gconf-compiz-utils.h
--- old/compiz-0.0.9/plugins/gconf-compiz-utils.h 1970-01-01 01:00:00.000000000 +0100
+++ new/compiz-0.0.9/plugins/gconf-compiz-utils.h 2006-04-07 10:10:00.000000000 +0200
@@ -0,0 +1,49 @@
+/*
+ * Copyright © 2006 Novell, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of
+ * Novell, Inc. not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Novell, Inc. makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#define APP_NAME "/apps/compiz"
+
+char *
+gconfBindingToString (CompDisplay *display,
+ CompOptionValue *value);
+
+int
+gconfStringToBinding (CompDisplay *display,
+ const char *binding,
+ CompOptionValue *value);
+
+int
+strcmpskipifequal (char **ptr,
+ char *s);
+
+char *
+gconfKeyForOption (CompOption *o,
+ const char *screen,
+ const char *plugin);
+
+gboolean
+gconfOptionForKey (CompDisplay *d,
+ char *key,
+ CompScreen **s,
+ char **plugin,
+ CompOption **o);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.9/plugins/gconf-dump.c new/compiz-0.0.9/plugins/gconf-dump.c
--- old/compiz-0.0.9/plugins/gconf-dump.c 2006-04-07 10:07:36.000000000 +0200
+++ new/compiz-0.0.9/plugins/gconf-dump.c 2006-04-07 17:33:27.000000000 +0200
@@ -64,6 +64,8 @@
return "float";
case CompOptionTypeString:
return "string";
+ case CompOptionTypeList:
+ return "list";
default:
break;
}
@@ -93,6 +95,30 @@
case CompOptionTypeString:
escaped = g_markup_escape_text (value->s, -1);
return escaped;
+ case CompOptionTypeList: {
+ char *tmp2, *tmp3;
+ int i;
+
+ tmp = g_strdup_printf ("[");
+
+ for (i = 0; i < value->list.nValue; i++)
+ {
+ tmp2 = gconfValueToString (d, value->list.type,
+ &value->list.value[i]);
+ tmp3 = g_strdup_printf ("%s%s%s", tmp, tmp2,
+ ((i + 1) < value->list.nValue) ? "," : "");
+ g_free (tmp);
+ g_free (tmp2);
+
+ tmp = tmp3;
+ }
+
+ tmp2 = g_strdup_printf ("%s]", tmp);
+ g_free (tmp);
+ escaped = g_markup_escape_text (tmp2, -1);
+ g_free (tmp2);
+ return escaped;
+ }
default:
break;
}
@@ -115,6 +141,9 @@
APP_NAME, path, screen, o->name);
gconfPrintf (3, "<owner>compiz</owner>\n");
gconfPrintf (3, "<type>%s</type>\n", gconfTypeToString (o->type));
+ if (o->type == CompOptionTypeList)
+ gconfPrintf (3, "%s\n",
+ gconfTypeToString (o->value.list.type));
value = gconfValueToString (d, o->type, &o->value);
gconfPrintf (3, "<default>%s</default>\n", value);
g_free (value);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.9/plugins/rotate.c new/compiz-0.0.9/plugins/rotate.c
--- old/compiz-0.0.9/plugins/rotate.c 2006-04-07 10:35:14.000000000 +0200
+++ new/compiz-0.0.9/plugins/rotate.c 2006-04-07 16:48:22.000000000 +0200
@@ -89,6 +89,8 @@
#define ROTATE_FLIPTIME_MIN 0
#define ROTATE_FLIPTIME_MAX 1000
+#define ROTATE_FLIPMOVE_DEFAULT FALSE
+
static int displayPrivateIndex;
typedef struct _RotateDisplay {
@@ -110,13 +112,16 @@
#define ROTATE_SCREEN_OPTION_TIMESTEP 11
#define ROTATE_SCREEN_OPTION_EDGEFLIP 12
#define ROTATE_SCREEN_OPTION_FLIPTIME 13
-#define ROTATE_SCREEN_OPTION_NUM 14
+#define ROTATE_SCREEN_OPTION_FLIPMOVE 14
+#define ROTATE_SCREEN_OPTION_NUM 15
typedef struct _RotateScreen {
PreparePaintScreenProc preparePaintScreen;
DonePaintScreenProc donePaintScreen;
PaintScreenProc paintScreen;
SetScreenOptionForPluginProc setScreenOptionForPlugin;
+ WindowGrabNotifyProc windowGrabNotify;
+ WindowUngrabNotifyProc windowUngrabNotify;
CompOption opt[ROTATE_SCREEN_OPTION_NUM];
@@ -150,6 +155,7 @@
int flipTime;
CompTimeoutHandle rotateHandle;
Bool slow;
+ unsigned int grabMask;
} RotateScreen;
#define GET_ROTATE_DISPLAY(d) \
@@ -283,6 +289,10 @@
rs->flipTime = o->value.i;
return TRUE;
}
+ break;
+ case ROTATE_SCREEN_OPTION_FLIPMOVE:
+ if (compSetBoolOption (o, value))
+ return TRUE;
default:
break;
}
@@ -429,6 +439,13 @@
o->value.i = ROTATE_FLIPTIME_DEFAULT;
o->rest.i.min = ROTATE_FLIPTIME_MIN;
o->rest.i.max = ROTATE_FLIPTIME_MAX;
+
+ o = &rs->opt[ROTATE_SCREEN_OPTION_FLIPMOVE];
+ o->name = "flip_move";
+ o->shortDesc = "Flip Move";
+ o->longDesc = "Only allow viewport flipping when moving windows";
+ o->type = CompOptionTypeBool;
+ o->value.b = ROTATE_FLIPMOVE_DEFAULT;
}
static int
@@ -836,19 +853,24 @@
{
ROTATE_SCREEN (s);
- if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_INITIATE], event))
- rotateInitiate (s, event->xkey.x_root, event->xkey.y_root);
+ /* only if screen isn't grabbed by someone else */
+ if ((s->maxGrab - rs->grabIndex) == 0)
+ {
+ if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_INITIATE], event))
+ rotateInitiate (s, event->xkey.x_root, event->xkey.y_root);
- if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_LEFT_WINDOW], event))
- rotateWithWindow (s, event->xkey.x_root, event->xkey.y_root,
- -1);
- else if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_LEFT], event))
- rotate (s, event->xkey.x_root, event->xkey.y_root, -1);
-
- if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_RIGHT_WINDOW], event))
- rotateWithWindow (s, event->xkey.x_root, event->xkey.y_root, 1);
- else if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_RIGHT], event))
- rotate (s, event->xkey.x_root, event->xkey.y_root, 1);
+ if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_LEFT_WINDOW], event))
+ rotateWithWindow (s, event->xkey.x_root, event->xkey.y_root,
+ -1);
+ else if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_LEFT], event))
+ rotate (s, event->xkey.x_root, event->xkey.y_root, -1);
+
+ if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_RIGHT_WINDOW], event))
+ rotateWithWindow (s, event->xkey.x_root,
+ event->xkey.y_root, 1);
+ else if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_RIGHT], event))
+ rotate (s, event->xkey.x_root, event->xkey.y_root, 1);
+ }
if (EV_KEY (&rs->opt[ROTATE_SCREEN_OPTION_TERMINATE], event))
rotateTerminate (s);
@@ -868,22 +890,30 @@
{
ROTATE_SCREEN (s);
- if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_INITIATE], event))
- rotateInitiate (s,
- event->xbutton.x_root,
- event->xbutton.y_root);
-
- if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_LEFT_WINDOW], event))
- rotateWithWindow (s, event->xbutton.x_root,
- event->xbutton.y_root, -1);
- else if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_LEFT], event))
- rotate (s, event->xbutton.x_root, event->xbutton.y_root, -1);
-
- if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_RIGHT_WINDOW], event))
- rotateWithWindow (s, event->xbutton.x_root,
- event->xbutton.y_root, 1);
- else if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_RIGHT], event))
- rotate (s, event->xbutton.x_root, event->xbutton.y_root, 1);
+ /* only if screen isn't grabbed by someone else */
+ if ((s->maxGrab - rs->grabIndex) == 0)
+ {
+ if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_INITIATE], event))
+ rotateInitiate (s,
+ event->xbutton.x_root,
+ event->xbutton.y_root);
+
+ if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_LEFT_WINDOW],
+ event))
+ rotateWithWindow (s, event->xbutton.x_root,
+ event->xbutton.y_root, -1);
+ else if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_LEFT], event))
+ rotate (s, event->xbutton.x_root,
+ event->xbutton.y_root, -1);
+
+ if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_RIGHT_WINDOW],
+ event))
+ rotateWithWindow (s, event->xbutton.x_root,
+ event->xbutton.y_root, 1);
+ else if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_RIGHT],
+ event))
+ rotate (s, event->xbutton.x_root, event->xbutton.y_root, 1);
+ }
if (EV_BUTTON (&rs->opt[ROTATE_SCREEN_OPTION_TERMINATE], event))
rotateTerminate (s);
@@ -954,6 +984,10 @@
s = w->screen;
+ /* check if screen is grabbed by someone else */
+ if (s->maxGrab - rs->grabIndex)
+ break;
+
/* reset movement */
rs->moving = TRUE;
rs->moveTo = 0.0f;
@@ -988,6 +1022,12 @@
{
int dx;
+ ROTATE_SCREEN (s);
+
+ /* check if screen is grabbed by someone else */
+ if (s->maxGrab - rs->grabIndex)
+ break;
+
dx = event->xclient.data.l[0] / s->width - s->x;
if (dx)
{
@@ -1020,6 +1060,20 @@
ROTATE_SCREEN (s);
+ /* check if screen is grabbed by someone else */
+ if (s->maxGrab - rs->grabIndex)
+ {
+ /* break if no window is being moved */
+ if (!rs->grabMask)
+ break;
+ }
+ else
+ {
+ /* break if we should only flip on window move */
+ if (rs->opt[ROTATE_SCREEN_OPTION_FLIPMOVE].value.b)
+ break;
+ }
+
if (rs->edges && id == s->screenEdge[SCREEN_EDGE_LEFT].id)
{
if (rs->flipTime == 0 || rs->grabIndex)
@@ -1106,6 +1160,34 @@
}
static void
+rotateWindowGrabNotify (CompWindow *w,
+ int x,
+ int y,
+ unsigned int state,
+ unsigned int mask)
+{
+ ROTATE_SCREEN (w->screen);
+
+ rs->grabMask = mask;
+
+ UNWRAP (rs, w->screen, windowGrabNotify);
+ (*w->screen->windowGrabNotify) (w, x, y, state, mask);
+ WRAP (rs, w->screen, windowGrabNotify, rotateWindowGrabNotify);
+}
+
+static void
+rotateWindowUngrabNotify (CompWindow *w)
+{
+ ROTATE_SCREEN (w->screen);
+
+ rs->grabMask = 0;
+
+ UNWRAP (rs, w->screen, windowUngrabNotify);
+ (*w->screen->windowUngrabNotify) (w);
+ WRAP (rs, w->screen, windowUngrabNotify, rotateWindowUngrabNotify);
+}
+
+static void
rotateUpdateCubeOptions (CompScreen *s)
{
CompPlugin *p;
@@ -1214,7 +1296,8 @@
rs->grabbed = FALSE;
rs->snapTop = FALSE;
- rs->slow = FALSE;
+ rs->slow = FALSE;
+ rs->grabMask = FALSE;
rs->acceleration = ROTATE_ACCELERATION_DEFAULT;
@@ -1240,6 +1323,8 @@
WRAP (rs, s, donePaintScreen, rotateDonePaintScreen);
WRAP (rs, s, paintScreen, rotatePaintScreen);
WRAP (rs, s, setScreenOptionForPlugin, rotateSetScreenOptionForPlugin);
+ WRAP (rs, s, windowGrabNotify, rotateWindowGrabNotify);
+ WRAP (rs, s, windowUngrabNotify, rotateWindowUngrabNotify);
s->privates[rd->screenPrivateIndex].ptr = rs;
@@ -1276,6 +1361,8 @@
UNWRAP (rs, s, donePaintScreen);
UNWRAP (rs, s, paintScreen);
UNWRAP (rs, s, setScreenOptionForPlugin);
+ UNWRAP (rs, s, windowGrabNotify);
+ UNWRAP (rs, s, windowUngrabNotify);
free (rs);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.9/plugins/scale.c new/compiz-0.0.9/plugins/scale.c
--- old/compiz-0.0.9/plugins/scale.c 2006-04-07 05:51:34.000000000 +0200
+++ new/compiz-0.0.9/plugins/scale.c 2006-04-07 17:01:58.000000000 +0200
@@ -44,10 +44,10 @@
#define SCALE_SLOPPY_FOCUS_DEFAULT FALSE
-#define SCALE_INITIATE_KEY_DEFAULT "F12"
+#define SCALE_INITIATE_KEY_DEFAULT "F11"
#define SCALE_INITIATE_MODIFIERS_DEFAULT CompPressMask
-#define SCALE_TERMINATE_KEY_DEFAULT "F12"
+#define SCALE_TERMINATE_KEY_DEFAULT "F11"
#define SCALE_TERMINATE_MODIFIERS_DEFAULT CompPressMask
#define SCALE_NEXT_WINDOW_KEY_DEFAULT "Right"
@@ -923,7 +923,13 @@
ss->state != SCALE_STATE_OUT)
{
if (!ss->grabIndex)
+ {
+ /* check if screen is grabbed by someone else */
+ if (s->maxGrab)
+ return;
+
ss->grabIndex = pushScreenGrab (s, ss->cursor);
+ }
if (ss->grabIndex)
{
@@ -1317,6 +1323,7 @@
ss->timestep = SCALE_TIMESTEP_DEFAULT;
ss->opacity = (OPAQUE * SCALE_OPACITY_DEFAULT) / 100;
+ ss->darkenBack = SCALE_DARKEN_BACK_DEFAULT;
ss->cornerMask = 0;
scaleScreenInitOptions (ss, s->display->display);
++++++ compiz-full-schema.patch ++++++
++++ 1195 lines (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...