packages: muffin/muffin.spec (NEW), muffin/rat4_gtk33.patch (NEW)=?UTF-8?Q?=20?=- new, ba...

glen glen at pld-linux.org
Sat Apr 28 20:47:09 CEST 2012


Author: glen                         Date: Sat Apr 28 18:47:09 2012 GMT
Module: packages                      Tag: HEAD
---- Log message:
- new, based on fedora pkg

---- Files affected:
packages/muffin:
   muffin.spec (NONE -> 1.1)  (NEW), rat4_gtk33.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/muffin/muffin.spec
diff -u /dev/null packages/muffin/muffin.spec:1.1
--- /dev/null	Sat Apr 28 20:47:09 2012
+++ packages/muffin/muffin.spec	Sat Apr 28 20:47:03 2012
@@ -0,0 +1,163 @@
+# $Revision$, $Date$
+%define		_internel_version  08ffc65
+Summary:	Window and compositing manager based on Clutter
+Name:		muffin
+Version:	1.0.2
+Release:	1
+License:	GPL v2+
+Group:		X11/Applications
+URL:		https://github.com/linuxmint/muffin
+Source0:	https://github.com/linuxmint/muffin/tarball/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5:	7da13590ceb8677209c15d1f2d9e024f
+# https://github.com/linuxmint/muffin/issues/9
+# https://github.com/rat4/muffin/compare/gtk_3.3
+Patch0:		rat4_gtk33.patch
+BuildRequires:	GConf2-devel
+BuildRequires:	clutter-devel >= 1.5.8
+BuildRequires:	desktop-file-utils
+BuildRequires:	gnome-doc-utils
+BuildRequires:	gobject-introspection-devel
+BuildRequires:	gtk+3-devel >= 2.99.0
+BuildRequires:	pango-devel
+BuildRequires:	pkgconfig
+BuildRequires:	startup-notification-devel
+BuildRequires:	xorg-lib-libSM-devel
+BuildRequires:	xorg-lib-libX11-devel
+BuildRequires:	xorg-lib-libXcomposite-devel
+BuildRequires:	xorg-lib-libXcursor-devel
+BuildRequires:	xorg-lib-libXdamage-devel
+BuildRequires:	xorg-lib-libXext-devel
+BuildRequires:	xorg-lib-libXrandr-devel
+BuildRequires:	xorg-lib-libXrender-devel
+BuildRequires:	zenity
+# Bootstrap requirements
+BuildRequires:	gnome-common
+BuildRequires:	gtk-doc
+BuildRequires:	intltool
+BuildRequires:	libcanberra-devel
+Requires:	GConf2
+#Requires:	control-center-filesystem
+Requires:	dbus-x11
+Requires:	startup-notification
+Requires:	zenity
+Requires(post):	/sbin/ldconfig
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+Muffin is a window and compositing manager that displays and manages
+your desktop via OpenGL. Muffin combines a sophisticated display
+engine using the Clutter toolkit with solid window-management logic
+inherited from the Metacity window manager.
+
+While Muffin can be used stand-alone, it is primarily intended to be
+used as the display core of a larger system such as Cinnamon. For this
+reason, Muffin is very extensible via plugins, which are used both to
+add fancy visual effects and to rework the window management behaviors
+to meet the needs of the environment.
+
+%package devel
+Summary:	Development package for %{name}
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+
+%description devel
+Header files and libraries for developing Muffin plugins. Also
+includes utilities for testing Metacity/Muffin themes.
+
+%prep
+%setup -q -n linuxmint-%{name}-%{_internel_version}
+%patch0 -p1
+
+%build
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+%configure \
+	--disable-static \
+	--enable-compile-warnings=minimum \
+
+SHOULD_HAVE_DEFINED="HAVE_SM HAVE_XINERAMA HAVE_XFREE_XINERAMA HAVE_SHAPE HAVE_RANDR HAVE_STARTUP_NOTIFICATION HAVE_COMPOSITE_EXTENSION"
+
+for I in $SHOULD_HAVE_DEFINED; do
+	if ! grep -q "define $I" config.h; then
+		echo "$I was not defined in config.h"
+		grep "$I" config.h
+		exit 1
+	else
+		echo "$I was defined as it should have been"
+		grep "$I" config.h
+	fi
+done
+
+%{__make} V=1
+
+%install
+rm -rf $RPM_BUILD_ROOT
+%{__make} install \
+	GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 \
+	DESTDIR=$RPM_BUILD_ROOT
+
+# Remove libtool archives.
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
+
+%find_lang %{name}
+
+# Muffin contains a .desktop file so we just need to validate it
+desktop-file-validate $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+/sbin/ldconfig
+%gconf_schema_install muffin.schemas
+
+%preun
+%gconf_schema_uninstall muffin.schemas
+
+%postun -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(644,root,root,755)
+%doc README AUTHORS NEWS HACKING doc/theme-format.txt
+%{_sysconfdir}/gconf/schemas/muffin.schemas
+%attr(755,root,root) %{_bindir}/muffin
+%attr(755,root,root) %{_bindir}/muffin-message
+%{_mandir}/man1/muffin.1*
+%{_mandir}/man1/muffin-message.1*
+%{_desktopdir}/muffin.desktop
+%dir %{_datadir}/muffin
+%attr(755,root,root) %{_libdir}/libmuffin.so.*.*.*
+%ghost %{_libdir}/libmuffin.so.0
+%{_libdir}/muffin/Meta-3.0.gir
+%{_libdir}/muffin/Meta-3.0.typelib
+%dir %{_libdir}/muffin
+%dir %{_libdir}/muffin/plugins
+%{_libdir}/muffin/plugins/default.so
+
+# XXX: nothing uses this?
+%dir %{_datadir}/gnome/wm-properties
+%{_datadir}/gnome/wm-properties/muffin-wm.desktop
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/muffin-theme-viewer
+%attr(755,root,root) %{_bindir}/muffin-window-demo
+%{_includedir}/muffin
+%{_libdir}/libmuffin.so
+%{_datadir}/muffin/icons/muffin-window-demo.png
+%{_pkgconfigdir}/libmuffin.pc
+%{_pkgconfigdir}/muffin-plugins.pc
+%{_mandir}/man1/muffin-theme-viewer.1*
+%{_mandir}/man1/muffin-window-demo.1*
+
+%define date	%(echo `LC_ALL="C" date +"%a %b %d %Y"`)
+%changelog
+* %{date} PLD Team <feedback at pld-linux.org>
+All persons listed below can be reached at <cvs_login>@pld-linux.org
+
+$Log$
+Revision 1.1  2012/04/28 18:47:03  glen
+- new, based on fedora pkg

================================================================
Index: packages/muffin/rat4_gtk33.patch
diff -u /dev/null packages/muffin/rat4_gtk33.patch:1.1
--- /dev/null	Sat Apr 28 20:47:09 2012
+++ packages/muffin/rat4_gtk33.patch	Sat Apr 28 20:47:03 2012
@@ -0,0 +1,1497 @@
+diff -urp linuxmint-muffin-0e57527/configure.in rat4-muffin-80db11c/configure.in
+--- a/configure.in	2012-03-10 15:13:14.000000000 +0000
++++ b/configure.in	2012-03-12 02:40:04.000000000 +0000
+@@ -61,7 +61,7 @@ AC_CHECK_SIZEOF(__int64)
+ ## byte order
+ AC_C_BIGENDIAN
+ 
+-GTK_MIN_VERSION=2.91.7
++GTK_MIN_VERSION=3.3.3
+ CANBERRA_GTK=libcanberra-gtk3
+ CANBERRA_GTK_VERSION=0.26
+ 
+diff -urp linuxmint-muffin-0e57527/src/compositor/meta-background-actor.c rat4-muffin-80db11c/src/compositor/meta-background-actor.c
+--- a/src/compositor/meta-background-actor.c	2012-03-10 15:13:14.000000000 +0000
++++ b/src/compositor/meta-background-actor.c	2012-03-12 02:40:04.000000000 +0000
+@@ -28,6 +28,9 @@
+ #define COGL_ENABLE_EXPERIMENTAL_API
+ #include <cogl/cogl-texture-pixmap-x11.h>
+ 
++#define CLUTTER_ENABLE_EXPERIMENTAL_API
++#include <clutter/clutter.h>
++
+ #include <X11/Xatom.h>
+ 
+ #include "cogl-utils.h"
+@@ -537,9 +540,11 @@ meta_background_actor_update (MetaScreen
+   if (root_pixmap_id != None)
+     {
+       CoglHandle texture;
++      CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
++      GError *error = NULL;
+ 
+       meta_error_trap_push (display);
+-      texture = cogl_texture_pixmap_x11_new (root_pixmap_id, FALSE);
++      texture = cogl_texture_pixmap_x11_new (ctx, root_pixmap_id, FALSE, &error);
+       meta_error_trap_pop (display);
+ 
+       if (texture != COGL_INVALID_HANDLE)
+@@ -550,6 +555,12 @@ meta_background_actor_update (MetaScreen
+           background->have_pixmap = True;
+           return;
+         }
++      else
++        {
++          g_warning ("Failed to create background texture from pixmap: %s",
++                     error->message);
++          g_error_free (error);
++        }
+     }
+ 
+   background->have_pixmap = False;
+diff -urp linuxmint-muffin-0e57527/src/compositor/meta-shaped-texture.c rat4-muffin-80db11c/src/compositor/meta-shaped-texture.c
+--- a/src/compositor/meta-shaped-texture.c	2012-03-10 15:13:14.000000000 +0000
++++ b/src/compositor/meta-shaped-texture.c	2012-03-12 02:40:04.000000000 +0000
+@@ -25,32 +25,38 @@
+ 
+ #include <config.h>
+ 
+-#include "meta-shaped-texture.h"
++#define CLUTTER_ENABLE_EXPERIMENTAL_API
++#define COGL_ENABLE_EXPERIMENTAL_API
++
++#include <meta/meta-shaped-texture.h>
+ #include "meta-texture-tower.h"
+ #include "meta-texture-rectangle.h"
+ 
+ #include <clutter/clutter.h>
+ #include <cogl/cogl.h>
++#include <cogl/cogl-texture-pixmap-x11.h>
+ #include <string.h>
+ 
+ static void meta_shaped_texture_dispose  (GObject    *object);
+-static void meta_shaped_texture_notify   (GObject    *object,
+-					  GParamSpec *pspec);
+ 
+ static void meta_shaped_texture_paint (ClutterActor       *actor);
+ static void meta_shaped_texture_pick  (ClutterActor       *actor,
+ 				       const ClutterColor *color);
+ 
+-static void meta_shaped_texture_update_area (ClutterX11TexturePixmap *texture,
+-					     int                      x,
+-					     int                      y,
+-					     int                      width,
+-					     int                      height);
++static void meta_shaped_texture_get_preferred_width (ClutterActor *self,
++                                                     gfloat        for_height,
++                                                     gfloat       *min_width_p,
++                                                     gfloat       *natural_width_p);
++
++static void meta_shaped_texture_get_preferred_height (ClutterActor *self,
++                                                      gfloat        for_width,
++                                                      gfloat       *min_height_p,
++                                                      gfloat       *natural_height_p);
+ 
+ static void meta_shaped_texture_dirty_mask (MetaShapedTexture *stex);
+ 
+ G_DEFINE_TYPE (MetaShapedTexture, meta_shaped_texture,
+-               CLUTTER_X11_TYPE_TEXTURE_PIXMAP);
++               CLUTTER_TYPE_ACTOR);
+ 
+ #define META_SHAPED_TEXTURE_GET_PRIVATE(obj) \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((obj), META_TYPE_SHAPED_TEXTURE, \
+@@ -59,6 +65,8 @@ G_DEFINE_TYPE (MetaShapedTexture, meta_s
+ struct _MetaShapedTexturePrivate
+ {
+   MetaTextureTower *paint_tower;
++  Pixmap pixmap;
++  CoglHandle texture;
+   CoglHandle mask_texture;
+   CoglHandle material;
+   CoglHandle material_unshaped;
+@@ -71,6 +79,7 @@ struct _MetaShapedTexturePrivate
+ 
+   cairo_region_t *visible_pixels_region;
+ 
++  guint tex_width, tex_height;
+   guint mask_width, mask_height;
+ 
+   guint create_mipmaps : 1;
+@@ -81,16 +90,14 @@ meta_shaped_texture_class_init (MetaShap
+ {
+   GObjectClass *gobject_class = (GObjectClass *) klass;
+   ClutterActorClass *actor_class = (ClutterActorClass *) klass;
+-  ClutterX11TexturePixmapClass *x11_texture_class = (ClutterX11TexturePixmapClass *) klass;
+ 
+   gobject_class->dispose = meta_shaped_texture_dispose;
+-  gobject_class->notify = meta_shaped_texture_notify;
+ 
++  actor_class->get_preferred_width = meta_shaped_texture_get_preferred_width;
++  actor_class->get_preferred_height = meta_shaped_texture_get_preferred_height;
+   actor_class->paint = meta_shaped_texture_paint;
+   actor_class->pick = meta_shaped_texture_pick;
+ 
+-  x11_texture_class->update_area = meta_shaped_texture_update_area;
+-
+   g_type_class_add_private (klass, sizeof (MetaShapedTexturePrivate));
+ }
+ 
+@@ -106,6 +113,7 @@ meta_shaped_texture_init (MetaShapedText
+   priv->overlay_region = NULL;
+   priv->visible_pixels_region = NULL;
+   priv->paint_tower = meta_texture_tower_new ();
++  priv->texture = COGL_INVALID_HANDLE;
+   priv->mask_texture = COGL_INVALID_HANDLE;
+   priv->create_mipmaps = TRUE;
+ }
+@@ -132,6 +140,11 @@ meta_shaped_texture_dispose (GObject *ob
+       cogl_handle_unref (priv->material_unshaped);
+       priv->material_unshaped = COGL_INVALID_HANDLE;
+     }
++  if (priv->texture != COGL_INVALID_HANDLE)
++    {
++      cogl_handle_unref (priv->texture);
++      priv->texture = COGL_INVALID_HANDLE;
++    }
+ 
+   meta_shaped_texture_set_shape_region (self, NULL);
+   meta_shaped_texture_set_clip_region (self, NULL);
+@@ -141,31 +154,6 @@ meta_shaped_texture_dispose (GObject *ob
+ }
+ 
+ static void
+-meta_shaped_texture_notify (GObject    *object,
+-			    GParamSpec *pspec)
+-{
+-  if (G_OBJECT_CLASS (meta_shaped_texture_parent_class)->notify)
+-    G_OBJECT_CLASS (meta_shaped_texture_parent_class)->notify (object, pspec);
+-
+-  /* It seems like we could just do this out of update_area(), but unfortunately,
+-   * clutter_glx_texture_pixmap() doesn't call through the vtable on the
+-   * initial update_area, so we need to look for changes to the texture
+-   * explicitly.
+-   */
+-  if (strcmp (pspec->name, "cogl-texture") == 0)
+-    {
+-      MetaShapedTexture *stex = (MetaShapedTexture *) object;
+-      MetaShapedTexturePrivate *priv = stex->priv;
+-
+-      meta_shaped_texture_clear (stex);
+-
+-      if (priv->create_mipmaps)
+-	meta_texture_tower_set_base_texture (priv->paint_tower,
+-					       clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (stex)));
+-    }
+-}
+-
+-static void
+ meta_shaped_texture_dirty_mask (MetaShapedTexture *stex)
+ {
+   MetaShapedTexturePrivate *priv = stex->priv;
+@@ -310,7 +298,7 @@ meta_shaped_texture_ensure_mask (MetaSha
+   CoglHandle paint_tex;
+   guint tex_width, tex_height;
+ 
+-  paint_tex = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (stex));
++  paint_tex = priv->texture;
+ 
+   if (paint_tex == COGL_INVALID_HANDLE)
+     return;
+@@ -451,13 +439,13 @@ meta_shaped_texture_paint (ClutterActor
+   if (priv->create_mipmaps)
+     paint_tex = meta_texture_tower_get_paint_texture (priv->paint_tower);
+   else
+-    paint_tex = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (stex));
++    paint_tex = priv->texture;
+ 
+   if (paint_tex == COGL_INVALID_HANDLE)
+     return;
+ 
+-  tex_width = cogl_texture_get_width (paint_tex);
+-  tex_height = cogl_texture_get_height (paint_tex);
++  tex_width = priv->tex_width;
++  tex_height = priv->tex_height;
+ 
+   if (tex_width == 0 || tex_height == 0) /* no contents yet */
+     return;
+@@ -574,7 +562,7 @@ meta_shaped_texture_pick (ClutterActor
+       ClutterActorBox alloc;
+       guint tex_width, tex_height;
+ 
+-      paint_tex = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (stex));
++      paint_tex = priv->texture;
+ 
+       if (paint_tex == COGL_INVALID_HANDLE)
+         return;
+@@ -602,19 +590,41 @@ meta_shaped_texture_pick (ClutterActor
+ }
+ 
+ static void
+-meta_shaped_texture_update_area (ClutterX11TexturePixmap *texture,
+-				 int                      x,
+-				 int                      y,
+-				 int                      width,
+-				 int                      height)
++meta_shaped_texture_get_preferred_width (ClutterActor *self,
++                                         gfloat        for_height,
++                                         gfloat       *min_width_p,
++                                         gfloat       *natural_width_p)
+ {
+-  MetaShapedTexture *stex = (MetaShapedTexture *) texture;
+-  MetaShapedTexturePrivate *priv = stex->priv;
++  MetaShapedTexturePrivate *priv;
+ 
+-  CLUTTER_X11_TEXTURE_PIXMAP_CLASS (meta_shaped_texture_parent_class)->update_area (texture,
+-                                                                                      x, y, width, height);
++  g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
+ 
+-  meta_texture_tower_update_area (priv->paint_tower, x, y, width, height);
++  priv = META_SHAPED_TEXTURE (self)->priv;
++
++  if (min_width_p)
++    *min_width_p = 0;
++
++  if (natural_width_p)
++    *natural_width_p = priv->tex_width;
++}
++
++static void
++meta_shaped_texture_get_preferred_height (ClutterActor *self,
++                                          gfloat        for_width,
++                                          gfloat       *min_height_p,
++                                          gfloat       *natural_height_p)
++{
++  MetaShapedTexturePrivate *priv;
++
++  g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
++
++  priv = META_SHAPED_TEXTURE (self)->priv;
++
++  if (min_height_p)
++    *min_height_p = 0;
++
++  if (natural_height_p)
++    *natural_height_p = priv->tex_height;
+ }
+ 
+ ClutterActor *
+@@ -640,34 +650,16 @@ meta_shaped_texture_set_create_mipmaps (
+   if (create_mipmaps != priv->create_mipmaps)
+     {
+       CoglHandle base_texture;
+-
+       priv->create_mipmaps = create_mipmaps;
+-
+       base_texture = create_mipmaps ?
+-	clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (stex)) : COGL_INVALID_HANDLE;
+-
++        priv->texture : COGL_INVALID_HANDLE;
+       meta_texture_tower_set_base_texture (priv->paint_tower, base_texture);
+     }
+ }
+ 
+-/* This is a workaround for deficiencies in the hack tower:
+- *
+- * When we call clutter_x11_texture_pixmap_set_pixmap(tp, None),
+- * ClutterX11TexturePixmap knows that it has to get rid of the old texture, but
+- * clutter_texture_set_cogl_texture(texture, COGL_INVALID_HANDLE) isn't allowed, so
+- * it grabs the material for the texture and manually sets the texture in it. This means
+- * that the "cogl-texture" property isn't notified, so we don't find out about it.
+- *
+- * And if we keep the CoglX11TexturePixmap around after the X pixmap is freed, then
+- * we'll trigger X errors when we actually try to free it.
+- *
+- * The only correct thing to do here is to change our code to derive
+- * from ClutterActor and get rid of the inheritance hack tower.  Once
+- * we want to depend on Clutter-1.4 (which has CoglTexturePixmapX11),
+- * that will be very easy to do.
+- */
+ void
+-meta_shaped_texture_clear (MetaShapedTexture *stex)
++meta_shaped_texture_set_shape_region (MetaShapedTexture *stex,
++                                      cairo_region_t    *region)
+ {
+   MetaShapedTexturePrivate *priv;
+ 
+@@ -675,38 +667,88 @@ meta_shaped_texture_clear (MetaShapedTex
+ 
+   priv = stex->priv;
+ 
+-  meta_texture_tower_set_base_texture (priv->paint_tower, COGL_INVALID_HANDLE);
++  if (priv->shape_region != NULL)
++    {
++      cairo_region_destroy (priv->shape_region);
++      priv->shape_region = NULL;
++    }
+ 
+-  if (priv->material != COGL_INVALID_HANDLE)
+-    cogl_material_set_layer (priv->material, 0, COGL_INVALID_HANDLE);
++  if (region != NULL)
++    {
++      cairo_region_reference (region);
++      priv->shape_region = region;
++    }
+ 
+-  if (priv->material_unshaped != COGL_INVALID_HANDLE)
+-    cogl_material_set_layer (priv->material_unshaped, 0, COGL_INVALID_HANDLE);
++  meta_shaped_texture_dirty_mask (stex);
++  clutter_actor_queue_redraw (CLUTTER_ACTOR (stex));
+ }
+ 
+ void
+-meta_shaped_texture_set_shape_region (MetaShapedTexture *stex,
+-                                      cairo_region_t    *region)
++meta_shaped_texture_update_area (MetaShapedTexture *stex,
++				 int                x,
++				 int                y,
++				 int                width,
++				 int                height)
+ {
+   MetaShapedTexturePrivate *priv;
++  const cairo_rectangle_int_t clip = { x, y, width, height };
++
++  priv = stex->priv;
++
++  if (priv->texture == COGL_INVALID_HANDLE)
++    return;
++
++  cogl_texture_pixmap_x11_update_area (priv->texture, x, y, width, height);
++
++  meta_texture_tower_update_area (priv->paint_tower, x, y, width, height);
++
++  clutter_actor_queue_redraw_with_clip (CLUTTER_ACTOR (stex), &clip);
++}
++
++static void
++set_cogl_texture (MetaShapedTexture *stex,
++                  CoglHandle         cogl_tex)
++{
++  MetaShapedTexturePrivate *priv;
++  guint width, height;
+ 
+   g_return_if_fail (META_IS_SHAPED_TEXTURE (stex));
+ 
+   priv = stex->priv;
+ 
+-  if (priv->shape_region != NULL)
++  if (priv->texture != COGL_INVALID_HANDLE)
++    cogl_handle_unref (priv->texture);
++
++  priv->texture = cogl_tex;
++
++  if (priv->material != COGL_INVALID_HANDLE)
++    cogl_material_set_layer (priv->material, 0, cogl_tex);
++
++  if (priv->material_unshaped != COGL_INVALID_HANDLE)
++    cogl_material_set_layer (priv->material_unshaped, 0, cogl_tex);
++
++  if (cogl_tex != COGL_INVALID_HANDLE)
+     {
+-      cairo_region_destroy (priv->shape_region);
+-      priv->shape_region = NULL;
+-    }
++      width = cogl_texture_get_width (cogl_tex);
++      height = cogl_texture_get_height (cogl_tex);
+ 
+-  if (region != NULL)
++      if (width != priv->tex_width ||
++          height != priv->tex_height)
++        {
++          priv->tex_width = width;
++          priv->tex_height = height;
++
++          clutter_actor_queue_relayout (CLUTTER_ACTOR (stex));
++        }
++    }
++  else
+     {
+-      cairo_region_reference (region);
+-      priv->shape_region = region;
++      /* size changed to 0 going to an invalid handle */
++      priv->tex_width = 0;
++      priv->tex_height = 0;
++      clutter_actor_queue_relayout (CLUTTER_ACTOR (stex));
+     }
+ 
+-  meta_shaped_texture_dirty_mask (stex);
+   clutter_actor_queue_redraw (CLUTTER_ACTOR (stex));
+ }
+ 
+@@ -729,12 +771,58 @@ meta_shaped_texture_get_visible_pixels_r
+ }
+ 
<<Diff was trimmed, longer than 597 lines>>


More information about the pld-cvs-commit mailing list