[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

compiz: Changes to 'debian-unstable'



 debian/changelog                                                        |   63 ++
 debian/compiz-gtk.links                                                 |    1 
 debian/patches/010-disable-child-window-clipping.patch                  |   42 +
 debian/patches/012_snap-by-default.patch                                |   14 
 debian/patches/013-add-cursor-theme-support.patch                       |  243 +++++++++
 debian/patches/014-fix-gtk-window-decorator-no-argb-crash.patch         |   49 +
 debian/patches/014_fix-no-border-window-shadow.patch                    |    4 
 debian/patches/015_draw_dock_shadows_on_desktop.patch                   |   85 +++
 debian/patches/015_optional-fbo.patch                                   |    5 
 debian/patches/016_call_glxwaitx_before_drawing.patch                   |   17 
 debian/patches/017_always_unredirect_screensaver_on_nvidia.patch        |   32 +
 debian/patches/018_use_metacity_settings.patch                          |   16 
 debian/patches/020_fix_focus.patch                                      |   81 +++
 debian/patches/029_default_options.patch                                |  143 +++++
 debian/patches/030_from_git_crash_fix_multiscreen.patch                 |   45 +
 debian/patches/031_from_git_fix_gnome_keybindings.patch                 |   43 +
 debian/patches/035_ignore_workspaces.patch                              |   19 
 debian/patches/037_fullscreen_stacking_fixes.patch                      |   17 
 debian/patches/049-damage-report-non-empty.patch                        |   83 +++
 debian/patches/050_stacking.patch                                       |   16 
 debian/patches/060_move_checks_to_compiz.patch                          |  264 +++++++++
 debian/patches/061_KWD_stubs.patch                                      |   17 
 debian/patches/562027-fix-gconf-ftbfs.patch                             |    9 
 debian/patches/series                                                   |   40 -
 debian/patches/ubuntu/010-disable-child-window-clipping.patch           |   41 -
 debian/patches/ubuntu/013-add-cursor-theme-support.patch                |  239 ---------
 debian/patches/ubuntu/014-fix-gtk-window-decorator-no-argb-crash.patch  |   44 -
 debian/patches/ubuntu/014_fix-no-border-window-shadow.patch             |   21 
 debian/patches/ubuntu/015_draw_dock_shadows_on_desktop.patch            |   82 ---
 debian/patches/ubuntu/016_call_glxwaitx_before_drawing.patch            |   13 
 debian/patches/ubuntu/017_always_unredirect_screensaver_on_nvidia.patch |   28 -
 debian/patches/ubuntu/018_use_metacity_settings.patch                   |   13 
 debian/patches/ubuntu/020_fix_focus.patch                               |   81 ---
 debian/patches/ubuntu/029_default_options                               |  133 -----
 debian/patches/ubuntu/030_from_git_crash_fix_multiscreen.patch          |   45 -
 debian/patches/ubuntu/031_from_git_fix_gnome_keybindings.patch          |   43 -
 debian/patches/ubuntu/035_ignore_workspaces                             |   13 
 debian/patches/ubuntu/037_fullscreen_stacking_fixes.patch               |   16 
 debian/patches/ubuntu/049-damage-report-non-empty.patch                 |   81 ---
 debian/patches/ubuntu/050_stacking.patch                                |   13 
 debian/patches/ubuntu/060_move_checks_to_compiz.patch                   |  265 ----------
 debian/patches/ubuntu/061_KWD_stubs.patch                               |   13 
 debian/patches/ubuntu/090_profiling                                     |  118 ----
 debian/patches/ubuntu/099-autogen.patch                                 |   12 
 debian/patches/ubuntu/series                                            |   20 
 45 files changed, 1317 insertions(+), 1365 deletions(-)

New commits:
commit 46f472a364f12e150ba12329b21e6e2c873d4b95
Author: Sean Finney <seanius@debian.org>
Date:   Wed Feb 3 21:57:45 2010 +0100

    Prepare changelog for 0.8.4-1

diff --git a/debian/changelog b/debian/changelog
index 471394a..7f2033a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,66 @@
+compiz (0.8.4-1) unstable; urgency=low
+
+  * New upstream release.
+
+  [ Sean Finney ]
+  * Fix FTBFS: "gconf/gconf-client.h: No such file or directory"
+    - thanks to Sebastian Harl <tokkee@debian.org> (Closes: #562027, #562438) 
+  * Add compiz-decorator symlink for compatibility with ubuntu systems.
+  * Make all patches DEP-3 formatted.
+  * No longer keep the ubuntu patches logically separated from ours
+  * Enable 010-disable-child-window-clipping.patch, as there's an ABI bump.
+    Also, massage the patch a little so that it applies cleanly.
+  * Synchronize ubuntu patches from 0.8.4-0ubuntu10
+    * 015_draw_dock_shadows_on_desktop.patch:
+      - change decoration plugin to draw dock shadows only on the
+        desktop window instead of on top of all other windows
+    * 016_call_glxwaitx_before_drawing.patch:
+      - Call glXWaitX before we start drawing to make sure X is done
+        handling rendering calls. Suggested by Michel Dänzer to ensure
+        we don't have any rendering glitches.
+    * 017_always_unredirect_screensaver_on_nvidia.patch:
+      - always unredirect gnome-screensaver when using nvidia, workaround
+        for LP #160264 while still disabling unredirect fullscreen
+        windows for nvidia users
+    * 020_fix_focus.patch:
+      - give back the focus to the previous focused window (LP: #455900)
+    * 030_from_git_crash_fix_multiscreen.patch:
+      - merge commit 24dea72a395071b533dcf66b2eef37b20522cbba to fix
+        crash with wobbly windows in a multi screen setup
+    * 031_from_git_fix_gnome_keybindings.patch:
+      - fix gnome keybindings (terminal key)
+    * 060_move_checks_to_compiz.patch:
+      - add all relevant checks from compiz-manager to compiz itself
+        Compiz already checks for almost everything it needs so there is no
+        need to check twice.
+    * 061_KWD_stubs.patch (updated locally to remove fuzz):
+      - Horrible hack to define empty stubs for some new pure virtual
+        functions in KWD::Window, to fix FTBFS.
+  * The following patches have been updated to cleanly apply:
+    * 014-fix-gtk-window-decorator-no-argb-crash.patch
+    * 015_optional-fbo.patch
+    * ubuntu/010-disable-child-window-clipping.patch
+    * ubuntu/013-add-cursor-theme-support.patch
+    * ubuntu/018_use_metacity_settings.patch
+    * ubuntu/029_default_options
+    * ubuntu/035_ignore_workspaces
+    * ubuntu/037_fullscreen_stacking_fixes.patch
+    * ubuntu/049-damage-report-non-empty.patch
+    * ubuntu/050_stacking.patch
+  * Transition from compiz-manager to compiz binary for /usr/bin/compiz
+  * Remove all patches to the embedded compiz-manager script
+    * 028_compiz_manager_blacklist
+    * 029_compiz_manager_decoration.patch
+    * 029_compiz_manager_nvidia_settings.patch
+    * 030_compiz_manager_multi_display
+    * 031_compiz_manager_extra_blacklist_support
+    * 032_compiz_manager_add_gnomecompat
+    * 033_compiz_manager_xdg_dirs
+    * 042-compiz-manager-default-plugin
+    * 046_compiz_manager_second_screen.patch
+
+ -- Sean Finney <seanius@debian.org>  Thu, 11 Feb 2010 20:17:39 +0100
+
 compiz (0.8.2-6) unstable; urgency=low
 
   * Add libxcursor-dev build-dep as required by patch

commit 93e263fd7bcc79d381c9f7741b4d99671a3f3c71
Author: Sean Finney <seanius@debian.org>
Date:   Thu Feb 11 20:06:26 2010 +0100

    Update debian/patches/disable-child-window-clipping.patch to remove fuzz.

diff --git a/debian/patches/010-disable-child-window-clipping.patch b/debian/patches/010-disable-child-window-clipping.patch
index d1b858b..0807f32 100644
--- a/debian/patches/010-disable-child-window-clipping.patch
+++ b/debian/patches/010-disable-child-window-clipping.patch
@@ -1,9 +1,11 @@
 Author: Matthew Garrett <mjg59@srcf.ucam.org>
 Description: Disable clipping of child windows 
+ * This patch was modified to apply cleanly in 0.8.4-1
+Last-Modified: Thu, 11 Feb 2010 20:06:12 +0100
 Origin: vendor, ubuntu (1:0.3.6-1ubuntu10)
 --- compiz.orig/src/display.c
 +++ compiz/src/display.c
-@@ -2234,6 +2234,23 @@ addDisplay (const char *name)
+@@ -2194,6 +2194,23 @@ addDisplay (const char *name)
  	lastScreen  = ScreenCount (dpy) - 1;
      }
  
@@ -36,5 +38,5 @@ Origin: vendor, ubuntu (1:0.3.6-1ubuntu10)
 +    Window glIncludeInferiorsOwner;
 +
      Window activeWindow;
-     Window nextActiveWindow;
  
+     Window below;

commit da37f41e8a3d1a3f2607731fd2cd6c600b3e79d5
Author: Sean Finney <seanius@debian.org>
Date:   Thu Feb 11 19:36:15 2010 +0100

    update some debian default in the default options patch

diff --git a/debian/patches/029_default_options.patch b/debian/patches/029_default_options.patch
index 56fcb5c..05c573d 100644
--- a/debian/patches/029_default_options.patch
+++ b/debian/patches/029_default_options.patch
@@ -11,10 +11,16 @@ Description: Various default settings
  * Increase drop-shadow radius from 8 to 9.
  * Set default decorator to /usr/bin/compiz-decorator.
  * Change default colors for faces in cube plugin.
- * Add ubuntu logo for top face of cube.
- * Use placement mode 2 for placement plugin.
- * Use default resize mode 2 in resize plugin.
+ * Use "Smart" placement mode (2) by default for placement plugin.
+ * Use "Rectangle" resize mode (2) by default for resize plugin.
  * Add exception to not fade notify-osd windows in fade plugin.
+ .
+ The following changes from the original Ubuntu patch were modified:
+ * Use slightly more Debianish/Gnomeish colors for the cube face top.
+ The following changes from the original Ubuntu patch were not included:
+ * Add Ubuntu logo for top face of cube.
+ The following changes were introduced to the Debian version of this patch:
+ * Add Debian logo for top face of cube.
 Origin: vendor, ubuntu (1:0.6.0+git20071006-0ubuntu1) or perhaps earlier.
 --- compiz.orig/metadata/core.xml.in.in
 +++ compiz/metadata/core.xml.in.in
@@ -85,9 +91,9 @@ Origin: vendor, ubuntu (1:0.6.0+git20071006-0ubuntu1) or perhaps earlier.
 -			<red>0xfefe</red>
 -			<green>0xffff</green>
 -			<blue>0xc7c7</blue>
-+                       <red>0xcdcd</red>
-+                       <green>0xbebe</green>
-+                       <blue>0x7070</blue>     
++                       <red>0x4545</red>
++                       <green>0x9a9a</green>
++                       <blue>0xf4f4</blue>     
  		    </default>
  		</option>
  		<subgroup>
@@ -98,7 +104,7 @@ Origin: vendor, ubuntu (1:0.6.0+git20071006-0ubuntu1) or perhaps earlier.
 -			<default>
 -			    <value>freedesktop</value>
 -			</default>
-+			<default><value>/usr/share/gdm/themes/Human/ubuntu.png</value></default>
++			<default><value>/usr/share/images/desktop-base/debian-blueish-wallpaper-640x480.png</value></default>
  		    </option>
  		    <option name="adjust_image" type="bool">
  			<_short>Adjust Image</_short>

commit 7559913fa794d2844ef7dfe86ab9d47f92f42fa0
Author: Sean Finney <seanius@debian.org>
Date:   Thu Feb 11 19:59:29 2010 +0100

    No longer keep the ubuntu patches logically separated from ours
    
    Avoid the artifical partition between ubuntu patches and our own; it only
    makes merging back and forth more difficult in the long run.
    
    Conflicts:
    
    	debian/patches/series

diff --git a/debian/patches/010-disable-child-window-clipping.patch b/debian/patches/010-disable-child-window-clipping.patch
new file mode 100644
index 0000000..d1b858b
--- /dev/null
+++ b/debian/patches/010-disable-child-window-clipping.patch
@@ -0,0 +1,40 @@
+Author: Matthew Garrett <mjg59@srcf.ucam.org>
+Description: Disable clipping of child windows 
+Origin: vendor, ubuntu (1:0.3.6-1ubuntu10)
+--- compiz.orig/src/display.c
++++ compiz/src/display.c
+@@ -2234,6 +2234,23 @@ addDisplay (const char *name)
+ 	lastScreen  = ScreenCount (dpy) - 1;
+     }
+ 
++    {
++	XSetWindowAttributes attr;
++	Atom atom;
++
++	attr.override_redirect = TRUE;
++	d->glIncludeInferiorsOwner =
++	    XCreateWindow (dpy, XRootWindow (dpy, 0),
++			   -100, -100, 1, 1, 0,
++			   CopyFromParent, CopyFromParent,
++			   CopyFromParent,
++			   CWOverrideRedirect,
++			   &attr);
++
++	atom = XInternAtom (dpy, "_COMPIZ_GL_INCLUDE_INFERIORS", False);
++	XSetSelectionOwner(dpy, atom, d->glIncludeInferiorsOwner, CurrentTime);
++    }
++
+     for (i = firstScreen; i <= lastScreen; i++)
+     {
+ 	Window		     newWmSnOwner = None, newCmSnOwner = None;
+--- compiz.orig/include/compiz-core.h
++++ compiz/include/compiz-core.h
+@@ -1028,6 +1028,8 @@ struct _CompDisplay {
+ 
+     GLenum textureFilter;
+ 
++    Window glIncludeInferiorsOwner;
++
+     Window activeWindow;
+     Window nextActiveWindow;
+ 
diff --git a/debian/patches/013-add-cursor-theme-support.patch b/debian/patches/013-add-cursor-theme-support.patch
new file mode 100644
index 0000000..dd15503
--- /dev/null
+++ b/debian/patches/013-add-cursor-theme-support.patch
@@ -0,0 +1,243 @@
+Author: Sebastien Bacher <seb128@canonical.com>
+Description: add cursor theme and size support
+Origin: vendor, ubuntu (1:0.3.6-1ubuntu4)
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/86184
+--- compiz.orig/configure.ac
++++ compiz/configure.ac
+@@ -123,6 +123,7 @@ COMPIZ_REQUIRES="xcomposite \
+ 		 xdamage    \
+ 		 xrandr	    \
+ 		 xinerama   \
++		 xcursor    \
+ 		 ice	    \
+ 		 sm	    \
+ 		 libxml-2.0 \
+--- compiz.orig/gtk/window-decorator/gtk-window-decorator.c
++++ compiz/gtk/window-decorator/gtk-window-decorator.c
+@@ -30,6 +30,7 @@
+ #include <X11/cursorfont.h>
+ #include <X11/extensions/Xrender.h>
+ #include <X11/Xregion.h>
++#include <X11/Xcursor/Xcursor.h>
+ 
+ #ifndef GDK_DISABLE_DEPRECATED
+ #define GDK_DISABLE_DEPRECATED
+@@ -83,6 +84,14 @@
+ #include <metacity-private/theme.h>
+ #endif
+ 
++#define GNOME_MOUSE_DIR "/desktop/gnome/peripherals/mouse"
++
++#define GNOME_CURSOR_THEME_KEY		\
++    GNOME_MOUSE_DIR "/cursor_theme"
++
++#define GNOME_CURSOR_SIZE_KEY		\
++    GNOME_MOUSE_DIR "/cursor_size"
++
+ #define METACITY_GCONF_DIR "/apps/metacity/general"
+ 
+ #define COMPIZ_USE_SYSTEM_FONT_KEY		    \
+@@ -146,6 +155,13 @@
+ #define WHEEL_ACTION_KEY   \
+     GCONF_DIR "/mouse_wheel_action"
+ 
++#define COMPIZ_GCONF_DIR2 "/apps/compiz/general/allscreens/options"
++#define COMPIZ_CURSOR_THEME_KEY          \
++    COMPIZ_GCONF_DIR2 "/cursor_theme"
++
++#define COMPIZ_CURSOR_SIZE_KEY           \
++    COMPIZ_GCONF_DIR2 "/cursor_size"
++
+ #define DBUS_DEST       "org.freedesktop.compiz"
+ #define DBUS_PATH       "/org/freedesktop/compiz/decoration/allscreens"
+ #define DBUS_INTERFACE  "org.freedesktop.compiz"
+@@ -6491,6 +6507,44 @@ button_layout_changed (GConfClient *clie
+     return FALSE;
+ }
+ 
++ static void
++cursor_theme_changed (GConfClient *client)
++{
++    gchar *theme;
++    gint size;
++
++    theme = gconf_client_get_string(client, GNOME_CURSOR_THEME_KEY, NULL);
++    size = gconf_client_get_int(client, GNOME_CURSOR_SIZE_KEY, NULL);
++
++    gconf_client_set_string(client, COMPIZ_CURSOR_THEME_KEY, theme, NULL);
++
++    gconf_client_set_int(client, COMPIZ_CURSOR_SIZE_KEY, size, NULL);
++
++    if (theme && strlen(theme))
++    {
++	gint i, j;
++	GdkDisplay *gdkdisplay = gdk_display_get_default ();
++	Display *xdisplay   = gdk_x11_display_get_xdisplay (gdkdisplay);
++
++
++	XcursorSetTheme (xdisplay, theme);
++	XcursorSetDefaultSize (xdisplay, size);
++
++	for (i = 0; i < 3; i++)
++	{
++	    for (j = 0; j < 3; j++)
++	    {
++		if (cursor[i][j].shape != XC_left_ptr)
++		{
++		    XFreeCursor (xdisplay, cursor[i][j].cursor);
++		    cursor[i][j].cursor =
++			XCreateFontCursor (xdisplay, cursor[i][j].shape);
++		}
++	    }
++	}
++    }
++}
++
+ static void
+ value_changed (GConfClient *client,
+ 	       const gchar *key,
+@@ -6569,6 +6623,11 @@ value_changed (GConfClient *client,
+ 	if (theme_opacity_changed (client))
+ 	    changed = TRUE;
+     }
++    else if (strcmp (key, GNOME_CURSOR_THEME_KEY) == 0 ||
++	     strcmp (key, GNOME_CURSOR_SIZE_KEY) == 0)
++    {
++	cursor_theme_changed (client);
++    }
+ 
+     if (changed)
+ 	decorations_changed (data);
+@@ -6732,6 +6791,11 @@ init_settings (WnckScreen *screen)
+ 			  NULL);
+ 
+     gconf_client_add_dir (gconf,
++			  GNOME_MOUSE_DIR,
++			  GCONF_CLIENT_PRELOAD_ONELEVEL,
++			  NULL);
++
++    gconf_client_add_dir (gconf,
+ 			  COMPIZ_GCONF_DIR1,
+ 			  GCONF_CLIENT_PRELOAD_ONELEVEL,
+ 			  NULL);
+@@ -6740,6 +6804,9 @@ init_settings (WnckScreen *screen)
+ 		      "value_changed",
+ 		      G_CALLBACK (value_changed),
+ 		      screen);
++
++    cursor_theme_changed(gconf);
++
+ #elif USE_DBUS_GLIB
+     DBusConnection *connection;
+     DBusMessage	   *reply;
+--- compiz.orig/metadata/core.xml.in.in
++++ compiz/metadata/core.xml.in.in
+@@ -35,6 +35,18 @@
+ 		<min>0</min>
+ 		<max>10000</max>
+ 	    </option>
++	    <option name="cursor_theme" type="string">
++		<_short>Cursor theme</_short>
++		<_long>Cursor theme name</_long>
++		<default></default>
++	    </option>
++	    <option name="cursor_size" type="int">
++		<_short>Cursor size</_short>
++		<_long>Size of the cursor</_long>
++		<default>18</default>
++		<min>8</min>
++		<max>128</max>
++	    </option>
+ 	    <option name="ping_delay" type="int">
+ 		<_short>Ping Delay</_short>
+ 		<_long>Interval between ping messages</_long>
+--- compiz.orig/src/display.c
++++ compiz/src/display.c
+@@ -41,6 +41,8 @@
+ #include <X11/extensions/Xcomposite.h>
+ #include <X11/extensions/Xrandr.h>
+ #include <X11/extensions/shape.h>
++#include <X11/Xcursor/Xcursor.h>
++#include <X11/cursorfont.h>
+ 
+ #include <compiz-core.h>
+ 
+@@ -474,6 +476,32 @@ shade (CompDisplay     *d,
+     return TRUE;
+ }
+ 
++static void
++compDisplaySetCursorTheme (CompDisplay *display)
++{
++    char *theme = display->opt[COMP_DISPLAY_OPTION_CURSOR_THEME].value.s;
++    int size = display->opt[COMP_DISPLAY_OPTION_CURSOR_SIZE].value.i;
++
++    if (theme && strlen(theme))
++    {
++	CompScreen *s;
++
++	XcursorSetTheme (display->display, theme);
++	XcursorSetDefaultSize (display->display, size);
++	for (s = display->screens; s; s = s->next)
++	{
++	    XFreeCursor (display->display, s->normalCursor);
++	    s->busyCursor = XCreateFontCursor (display->display, XC_watch);
++	    XFlush (display->display);
++
++	    XFreeCursor (display->display, s->normalCursor);
++	    s->normalCursor = XCreateFontCursor (display->display, XC_left_ptr);
++	    XDefineCursor (display->display, s->root, s->normalCursor);
++	    XFlush (display->display);
++	}
++    }
++}
++
+ const CompMetadataOptionInfo coreDisplayOptionInfo[COMP_DISPLAY_OPTION_NUM] = {
+     { "abi", "int", 0, 0, 0 },
+     { "active_plugins", "list", "<type>string</type>", 0, 0 },
+@@ -510,7 +538,9 @@ const CompMetadataOptionInfo coreDisplay
+     { "toggle_window_shaded_key", "key", 0, shade, 0 },
+     { "ignore_hints_when_maximized", "bool", 0, 0, 0 },
+     { "ping_delay", "int", "<min>1000</min>", 0, 0 },
+-    { "edge_delay", "int", "<min>0</min>", 0, 0 }
++    { "edge_delay", "int", "<min>0</min>", 0, 0 },
++    { "cursor_theme", "string", 0, 0, 0 },
++    { "cursor_size", "int", 0, 0, 0 }
+ };
+ 
+ CompOption *
+@@ -661,6 +691,20 @@ setDisplayOption (CompPlugin	  *plugin,
+ 	    return TRUE;
+ 	}
+ 	break;
++    case COMP_DISPLAY_OPTION_CURSOR_THEME:
++	if (compSetStringOption(o, value))
++	{
++	    compDisplaySetCursorTheme(display);
++	    return TRUE;
++	}
++	break;
++    case COMP_DISPLAY_OPTION_CURSOR_SIZE:
++	if (compSetIntOption(o, value))
++	{
++	    compDisplaySetCursorTheme(display);
++	    return TRUE;
++	}
++	break;
+     default:
+ 	if (compSetDisplayOption (display, o, value))
+ 	    return TRUE;
+--- compiz.orig/include/compiz-core.h
++++ compiz/include/compiz-core.h
+@@ -776,7 +776,10 @@ removeFileWatch (CompFileWatchHandle han
+ #define COMP_DISPLAY_OPTION_IGNORE_HINTS_WHEN_MAXIMIZED      31
+ #define COMP_DISPLAY_OPTION_PING_DELAY			     32
+ #define COMP_DISPLAY_OPTION_EDGE_DELAY                       33
+-#define COMP_DISPLAY_OPTION_NUM				     34
++#define COMP_DISPLAY_OPTION_CURSOR_THEME                     34
++#define COMP_DISPLAY_OPTION_CURSOR_SIZE                      35
++#define COMP_DISPLAY_OPTION_NUM				     36
++
+ 
+ typedef void (*HandleEventProc) (CompDisplay *display,
+ 				 XEvent	     *event);
diff --git a/debian/patches/014-fix-gtk-window-decorator-no-argb-crash.patch b/debian/patches/014-fix-gtk-window-decorator-no-argb-crash.patch
new file mode 100644
index 0000000..aa8a270
--- /dev/null
+++ b/debian/patches/014-fix-gtk-window-decorator-no-argb-crash.patch
@@ -0,0 +1,49 @@
+Author: Sebastien Bacher <seb128@canonical.com>
+Description: Fix decorator crash when ARGB isn't enabled
+ Fix gtk-window-decorator crash when ARGB isn't enabled and only
+ that, in this case window-decoration are invisible
+Origin: vendor, ubuntu (1:0.3.6-1ubuntu9)
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/94140
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/82205
+--- compiz.orig/gtk/window-decorator/gtk-window-decorator.c
++++ compiz/gtk/window-decorator/gtk-window-decorator.c
+@@ -1918,10 +1918,8 @@ meta_draw_window_decoration (decor_t *d)
+ 
+     size = MAX (fgeom.top_height, fgeom.bottom_height);
+ 
+-    if (rect.width && size)
++    if (rect.width && size && (pixmap = create_pixmap (rect.width, size)))
+     {
+-	pixmap = create_pixmap (rect.width, size);
+-
+ 	cr = gdk_cairo_create (GDK_DRAWABLE (pixmap));
+ 	gdk_cairo_set_source_color_alpha (cr, &bg_color, bg_alpha);
+ 	cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+@@ -2020,10 +2018,8 @@ meta_draw_window_decoration (decor_t *d)
+ 
+     size = MAX (fgeom.left_width, fgeom.right_width);
+ 
+-    if (size && rect.height)
++    if (size && rect.height && (pixmap = create_pixmap (size, rect.height)))
+     {
+-	pixmap = create_pixmap (size, rect.height);
+-
+ 	cr = gdk_cairo_create (GDK_DRAWABLE (pixmap));
+ 	gdk_cairo_set_source_color_alpha (cr, &bg_color, bg_alpha);
+ 	cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+@@ -3320,9 +3316,12 @@ update_window_decoration_icon (WnckWindo
+ 	g_object_ref (G_OBJECT (d->icon_pixbuf));
+ 
+ 	d->icon_pixmap = pixmap_new_from_pixbuf (d->icon_pixbuf);
+-	cr = gdk_cairo_create (GDK_DRAWABLE (d->icon_pixmap));
+-	d->icon = cairo_pattern_create_for_surface (cairo_get_target (cr));
+-	cairo_destroy (cr);
++	if (d->icon_pixmap)
++	{
++	    cr = gdk_cairo_create (GDK_DRAWABLE (d->icon_pixmap));
++	    d->icon = cairo_pattern_create_for_surface (cairo_get_target (cr));
++	    cairo_destroy (cr);
++	}
+     }
+ }
+ 
diff --git a/debian/patches/015_draw_dock_shadows_on_desktop.patch b/debian/patches/015_draw_dock_shadows_on_desktop.patch
new file mode 100644
index 0000000..d9a7ec0
--- /dev/null
+++ b/debian/patches/015_draw_dock_shadows_on_desktop.patch
@@ -0,0 +1,85 @@
+Author: Travis Watkins <amaranth@ubuntu.com>
+Description: Change decoration plugin dock shadow drawing behavior
+ change decoration plugin to draw dock shadows only on the
+ desktop window instead of on top of all other windows
+Origin: vendor, ubuntu (1:0.8.2-0ubuntu16)
+--- compiz.orig/plugins/decoration.c
++++ compiz/plugins/decoration.c
+@@ -190,6 +190,11 @@ decorDrawWindow (CompWindow	      *w,
+     status = (*w->screen->drawWindow) (w, transform, attrib, region, mask);
+     WRAP (ds, w->screen, drawWindow, decorDrawWindow);
+ 
++    /* we wait to draw dock shadows until we get to the lowest
++       desktop window in the stack */
++    if (w->type & CompWindowTypeDockMask)
++	return status;
++
+     if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
+ 	region = &infiniteRegion;
+ 
+@@ -226,6 +231,65 @@ decorDrawWindow (CompWindow	      *w,
+ 					     attrib, mask);
+     }
+ 
++    if (w->type & CompWindowTypeDesktopMask)
++    {
++	/* we only want to draw on the lowest desktop window, find it and see
++	   if we the window we have is it */
++	CompWindow *window = w->screen->windows;
++	for (window = w->screen->windows; window; window = window->next)
++	{
++	    if (window->type & CompWindowTypeDesktopMask)
++	    {
++		if (window == w)
++		    break;
++		else
++		    return status;
++	    }
++	}
++
++	/* drawing dock shadows now */
++	for (window = w->screen->windows; window; window = window->next)
++	{
++	    if (window->type & CompWindowTypeDockMask && !window->destroyed && !window->invisible)
++	    {
++		DECOR_WINDOW (window);
++
++		if (dw->wd && region->numRects)
++		{
++		    WindowDecoration *wd = dw->wd;
++		    REGION	     box;
++		    int		     i;
++
++		    mask |= PAINT_WINDOW_BLEND_MASK;
++
++		    box.rects	 = &box.extents;
++		    box.numRects = 1;
++
++		    window->vCount = window->indexCount = 0;
++
++		    for (i = 0; i < wd->nQuad; i++)
++		    {
++			box.extents = wd->quad[i].box;
++
++			if (box.extents.x1 < box.extents.x2 &&
++			    box.extents.y1 < box.extents.y2)
++			{
++			    (*window->screen->addWindowGeometry) (window,
++								  &wd->quad[i].matrix, 1,
++								  &box,
++								  region);
++			}
++		    }
++
++		    if (window->vCount)
++			(*window->screen->drawWindowTexture) (window,
++							      &wd->decor->texture->texture,
++							      attrib, mask);
++		}
++	    }
++	}
++    }
++
+     return status;
+ }
+ 
diff --git a/debian/patches/016_call_glxwaitx_before_drawing.patch b/debian/patches/016_call_glxwaitx_before_drawing.patch
new file mode 100644
index 0000000..3af8d05
--- /dev/null
+++ b/debian/patches/016_call_glxwaitx_before_drawing.patch
@@ -0,0 +1,17 @@
+Author: Travis Watkins <amaranth@ubuntu.com>
+Description: Call glXWaitX before we start drawing
+ Call glXWaitX before we start drawing to make sure X is done
+ handling rendering calls. Suggested by Michel Dänzer to ensure
+ we don't have any rendering glitches.
+Origin: vendor, ubuntu (1:0.8.3+git20090917-0ubuntu3)
+--- compiz.orig/src/display.c
++++ compiz/src/display.c
+@@ -1537,6 +1537,8 @@ eventLoop (void)
+ 			    timeDiff = 0;
+ 
+ 			makeScreenCurrent (s);
++			/* make sure X is ready for us to draw */
++			glXWaitX ();
+ 
+ 			if (s->slowAnimations)
+ 			{
diff --git a/debian/patches/017_always_unredirect_screensaver_on_nvidia.patch b/debian/patches/017_always_unredirect_screensaver_on_nvidia.patch
new file mode 100644
index 0000000..15656ee
--- /dev/null
+++ b/debian/patches/017_always_unredirect_screensaver_on_nvidia.patch
@@ -0,0 +1,32 @@
+Author: Travis Watkins <amaranth@ubuntu.com>
+Description: Always unredirect gnome-screensaver when using nvidia
+ Workaround for LP #160264 while still disabling unredirect fullscreen
+ windows for nvidia users
+Origin: vendor, ubuntu (1:0.8.3+git20090917-0ubuntu4)
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/160264
+--- compiz.orig/src/paint.c
++++ compiz/src/paint.c
+@@ -262,6 +262,7 @@ paintOutputRegion (CompScreen	       *sc
+     CompTransform vTransform;
+     int           offX, offY;
+     Region        clip = region;
++    int           dontcare;
+ 
+     if (!tmpRegion)
+     {
+@@ -341,8 +342,14 @@ paintOutputRegion (CompScreen	       *sc
+ 		    XSubtractRegion (tmpRegion, w->region, tmpRegion);
+ 
+ 		/* unredirect top most fullscreen windows. */
++		/* if the fullscreen window is gnome-screensaver and we're
++		   on nvidia we want to always unredirect even if this
++		   option is disabled to work around LP #160264 */
+ 		if (count == 0 &&
+-		    screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b)
++		    (screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b ||
++		    (w->resName && !strcmp(w->resName, "gnome-screensaver") &&
++		    XQueryExtension (screen->display->display, "NV-GLX",
++				     &dontcare, &dontcare, &dontcare))))
+ 		{
+ 		    if (XEqualRegion (w->region, &screen->region) &&
+ 			!REGION_NOT_EMPTY (tmpRegion))
diff --git a/debian/patches/018_use_metacity_settings.patch b/debian/patches/018_use_metacity_settings.patch
new file mode 100644
index 0000000..03eb58b
--- /dev/null
+++ b/debian/patches/018_use_metacity_settings.patch
@@ -0,0 +1,16 @@
+Author: Michael Vogt <michael.vogt@ubuntu.com>
+Description: Use metacity control center applet instead of compiz one.
+ The rationale is that the ccp backend will transparently work with the
+ metacity options under gnome.
+Origin: vendor, ubuntu (1:0.5.1+git20070618-0ubuntu2)
+--- compiz.orig/gtk/gnome/compiz.desktop.in
++++ compiz/gtk/gnome/compiz.desktop.in
+@@ -5,7 +5,7 @@ _Name=Compiz
+ Exec=compiz
+ NoDisplay=true
+ # name of loadable control center module
+-X-GNOME-WMSettingsModule=compiz
++X-GNOME-WMSettingsModule=metacity
+ # autostart phase
+ X-GNOME-Autostart-Phase=WindowManager
+ X-GNOME-Provides=windowmanager
diff --git a/debian/patches/020_fix_focus.patch b/debian/patches/020_fix_focus.patch
new file mode 100644
index 0000000..1d2f179
--- /dev/null
+++ b/debian/patches/020_fix_focus.patch
@@ -0,0 +1,81 @@
+Index: compiz-0.8.4/include/compiz-core.h
+===================================================================
+--- compiz-0.8.4.orig/include/compiz-core.h	2009-11-01 11:14:28.704773780 -0600
++++ compiz-0.8.4/include/compiz-core.h	2009-11-01 11:15:04.254773783 -0600
+@@ -142,6 +142,7 @@
+ #define CompWindowStateBelowMask	    (1 << 10)
+ #define CompWindowStateDemandsAttentionMask (1 << 11)
+ #define CompWindowStateDisplayModalMask	    (1 << 12)
++#define CompWindowStateUnmanagingMask	    (1 << 13)
+ 
+ #define MAXIMIZE_STATE (CompWindowStateMaximizedHorzMask | \
+ 			CompWindowStateMaximizedVertMask)
+Index: compiz-0.8.4/src/event.c
+===================================================================
+--- compiz-0.8.4.orig/src/event.c	2009-11-01 11:14:04.764750121 -0600
++++ compiz-0.8.4/src/event.c	2009-11-01 11:15:04.254773783 -0600
+@@ -1366,13 +1366,14 @@
+ 	    }
+ 	    else /* X -> Withdrawn */
+ 	    {
++		unsigned int newState = w->state;
++
+ 		/* Iconic -> Withdrawn */
+ 		if (w->state & CompWindowStateHiddenMask)
+ 		{
+ 		    w->minimized = FALSE;
+ 
+-		    changeWindowState (w,
+-				       w->state & ~CompWindowStateHiddenMask);
++		    newState &= ~CompWindowStateHiddenMask;
+ 
+ 		    updateClientListForScreen (w->screen);
+ 		}
+@@ -1380,6 +1381,12 @@
+ 		if (!w->attrib.override_redirect)
+ 		    setWmState (d, WithdrawnState, w->id);
+ 
++		if (w->managed)
++		    newState |= CompWindowStateUnmanagingMask;
++
++		changeWindowState (w, newState);
++
++		w->managed = FALSE;
+ 		w->placed  = FALSE;
+ 	    }
+ 
+Index: compiz-0.8.4/src/window.c
+===================================================================
+--- compiz-0.8.4.orig/src/window.c	2009-11-01 11:14:04.774749786 -0600
++++ compiz-0.8.4/src/window.c	2009-11-01 11:15:04.264770655 -0600
+@@ -2554,7 +2554,7 @@
+     if (w->unmapRefCnt > 0)
+ 	return;
+ 
+-    if (w->managed && !w->placed) /* only for managed and closed windows */
++    if (w->state & CompWindowStateUnmanagingMask)
+     {
+ 	XWindowChanges xwc;
+ 	unsigned int   xwcm;
+@@ -2573,7 +2573,7 @@
+ 	if (xwcm)
+ 	    configureXWindow (w, xwcm, &xwc);
+ 
+-	w->managed = FALSE;
++	changeWindowState (w, w->state & ~CompWindowStateUnmanagingMask);
+     }
+ 
+     if (w->struts)
+@@ -2948,6 +2948,12 @@
+     if (!w->managed)
+ 	return FALSE;
+ 
++    if (w->destroyed)
++	return FALSE;
++
++    if (w->state & CompWindowStateUnmanagingMask)
++	return FALSE;
++
+     if (!onCurrentDesktop (w))
+ 	return FALSE;
+ 
diff --git a/debian/patches/029_default_options.patch b/debian/patches/029_default_options.patch
new file mode 100644
index 0000000..56fcb5c
--- /dev/null
+++ b/debian/patches/029_default_options.patch
@@ -0,0 +1,137 @@
+Author: Michael Vogt <michael.vogt@ubuntu.com>
+Description: Various default settings
+ Changes in various defaults.  From what I can tell (these were originally
+ from ubuntu, but I (the debian maintainer) will do my best to summarize
+ them below).
+ .
+ * Desktop Horizontal virtual size of 2 instead of 4.
+ * Sync to vblank: false by default.
+ * Make an exception to focus prevention matching for PolicyKit windows.
+ * Remove top-right hotcorner from scale plugin by default.
+ * Increase drop-shadow radius from 8 to 9.
+ * Set default decorator to /usr/bin/compiz-decorator.
+ * Change default colors for faces in cube plugin.
+ * Add ubuntu logo for top face of cube.
+ * Use placement mode 2 for placement plugin.
+ * Use default resize mode 2 in resize plugin.
+ * Add exception to not fade notify-osd windows in fade plugin.
+Origin: vendor, ubuntu (1:0.6.0+git20071006-0ubuntu1) or perhaps earlier.
+--- compiz.orig/metadata/core.xml.in.in
++++ compiz/metadata/core.xml.in.in
+@@ -211,7 +211,7 @@
+ 		<option name="hsize" type="int">
+ 		    <_short>Horizontal Virtual Size</_short>
+ 		    <_long>Screen size multiplier for horizontal virtual size</_long>
+-		    <default>4</default>
++		    <default>2</default>
+ 		    <min>1</min>
+ 		    <max>32</max>
+ 		</option>
+@@ -284,7 +284,7 @@
+ 		<option name="sync_to_vblank" type="bool">
+ 		    <_short>Sync To VBlank</_short>
+ 		    <_long>Only perform screen updates during vertical blanking period</_long>
+-		    <default>true</default>
++		    <default>false</default>
+ 		</option>
+ 	    </group>
+ 	    <group>
+@@ -319,7 +319,7 @@
+ 		<option name="focus_prevention_match" type="match">
+ 		    <_short>Focus Prevention Windows</_short>
+ 		    <_long>Focus prevention windows</_long>
+-		    <default>any</default>
++		    <default>!(class=Polkit-gnome-authentication-agent-1)</default>
+ 		</option>
+ 	    </group>
+ 	    <option name="unredirect_fullscreen_windows" type="bool">
+--- compiz.orig/metadata/scale.xml.in
++++ compiz/metadata/scale.xml.in
+@@ -27,9 +27,6 @@
+ 		<option name="initiate_edge" type="edge">
+ 		    <_short>Initiate Window Picker</_short>
+ 		    <_long>Layout and start transforming windows</_long>
+-		    <default>
+-			<edge name="TopRight"/>
+-		    </default>
+ 		    <allowed edgednd="true"/>
+ 		</option>
+ 		<option name="initiate_key" type="key">
+--- compiz.orig/metadata/decoration.xml.in
++++ compiz/metadata/decoration.xml.in
+@@ -16,7 +16,7 @@
+ 	    <option name="shadow_radius" type="float">
+ 		<_short>Shadow Radius</_short>
+ 		<_long>Drop shadow radius</_long>
+-		<default>8.0</default>
++		<default>9.0</default>
+ 		<min>0.1</min>
+ 		<max>18.0</max>
+ 		<precision>0.1</precision>
+@@ -50,6 +50,7 @@
+ 	    <option name="command" type="string">
+ 		<_short>Command</_short>
+ 		<_long>Decorator command line that is executed if no decorator is already running</_long>
++		<default>/usr/bin/compiz-decorator</default>
+ 	    </option>
+ 	    <option name="mipmap" type="bool">
+ 		<_short>Mipmap</_short>
+--- compiz.orig/metadata/cube.xml.in
++++ compiz/metadata/cube.xml.in
+@@ -92,9 +92,9 @@
+ 		    <_short>Cube Color</_short>
+ 		    <_long>Color of top and bottom sides of the cube</_long>
+ 		    <default>
+-			<red>0xfefe</red>
+-			<green>0xffff</green>
+-			<blue>0xc7c7</blue>
++                       <red>0xcdcd</red>
++                       <green>0xbebe</green>
++                       <blue>0x7070</blue>     
+ 		    </default>
+ 		</option>
+ 		<subgroup>
+@@ -109,9 +109,7 @@
+ 			<_long>List of PNG and SVG files that should be rendered on top face of cube</_long>
+ 			<type>string</type>
+ 			<hints>file;image;</hints>
+-			<default>
+-			    <value>freedesktop</value>
+-			</default>
++			<default><value>/usr/share/gdm/themes/Human/ubuntu.png</value></default>
+ 		    </option>
+ 		    <option name="adjust_image" type="bool">
+ 			<_short>Adjust Image</_short>
+--- compiz.orig/metadata/place.xml.in
++++ compiz/metadata/place.xml.in
+@@ -12,7 +12,7 @@
+ 	    <option name="mode" type="int">
+ 		<_short>Placement Mode</_short>
+ 		<_long>Algorithm to use for window placement</_long>
+-		<default>0</default>
++		<default>2</default>
+ 		<min>0</min>
+ 		<max>5</max>
+ 		<desc>
+--- compiz.orig/metadata/resize.xml.in
++++ compiz/metadata/resize.xml.in
+@@ -40,7 +40,7 @@
+ 	    <option name="mode" type="int">
+ 		<_short>Default Resize Mode</_short>
+ 		<_long>Default mode used for window resizing</_long>
+-		<default>0</default>
++		<default>2</default>
+ 		<min>0</min>
+ 		<max>3</max>
+ 		<desc>
+--- compiz.orig/metadata/fade.xml.in
++++ compiz/metadata/fade.xml.in
+@@ -51,7 +51,7 @@
+ 	    <option name="window_match" type="match">
+ 		<_short>Fade windows</_short>
+ 		<_long>Windows that should be fading</_long>
+-		<default>any</default>
++                <default>any &amp; !(title=notify-osd)</default>
+ 	    </option>
+ 	    <option name="visual_bell" type="bool">
+ 		<_short>Visual Bell</_short>
diff --git a/debian/patches/030_from_git_crash_fix_multiscreen.patch b/debian/patches/030_from_git_crash_fix_multiscreen.patch
new file mode 100644
index 0000000..18a5841
--- /dev/null
+++ b/debian/patches/030_from_git_crash_fix_multiscreen.patch
@@ -0,0 +1,45 @@
+diff --git a/plugins/wobbly.c b/plugins/wobbly.c
+index bf92680..51f733e 100644
+--- a/plugins/wobbly.c
++++ b/plugins/wobbly.c
+@@ -1709,22 +1709,20 @@ wobblyPreparePaintScreen (CompScreen *s,
+ 			    ww->wobbly |= WobblyInitial;
+ 			}
+ 
+-			if (!ww->grabbed && wd->yConstrained)
++			if (!ww->grabbed && ws->grabWindowWorkArea)
+ 			{
+ 			    float bottommostYPos = MINSHORT;
+-			    int i;
++			    int   i, decorTop;
+ 
+ 			    /* find the bottommost top-row object */
+ 			    for (i = 0; i < GRID_WIDTH; i++)


Reply to: