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 <sean...@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 <tok...@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 <sean...@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 <sean...@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 <mj...@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 <sean...@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 <sean...@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 <mj...@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 <seb...@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 <seb...@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 <amara...@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 <amara...@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 <amara...@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.v...@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.v...@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++)


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to