From 232f994f8783c34cc59db982207c62d9d7318536 Mon Sep 17 00:00:00 2001 From: leigh123linux Date: May 28 2012 08:33:27 +0000 Subject: rebuilt --- diff --git a/muffin.spec b/muffin.spec index f8590e0..41a7b28 100644 --- a/muffin.spec +++ b/muffin.spec @@ -1,7 +1,7 @@ -%global _internel_version 08ffc65 +%global _internel_version 10abba0 Name: muffin -Version: 1.0.2 +Version: 1.0.3 Release: 2%{?dist} Summary: Window and compositing manager based on Clutter @@ -9,12 +9,9 @@ Group: User Interface/Desktops License: GPLv2+ URL: https://github.com/linuxmint/muffin # To generate tarball -# wget https://github.com/linuxmint/muffin/tarball/1.0.2 -O muffin-1.0.2.tar.gz +# wget https://github.com/linuxmint/muffin/tarball/1.0.3 -O muffin-1.0.3.tar.gz Source0: %{name}-%{version}.tar.gz -# https://github.com/linuxmint/muffin/issues/9 -# https://github.com/rat4/muffin/compare/gtk_3.3 -Patch0: rat4_gtk33.patch BuildRequires: clutter-devel >= 1.5.8 BuildRequires: pango-devel @@ -68,7 +65,6 @@ utilities for testing Metacity/Muffin themes. %prep %setup -q -n linuxmint-%{name}-%{_internel_version} -%patch0 -p1 %build NOCONFIGURE=1 autoreconf -fi @@ -137,6 +133,12 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop %doc %{_mandir}/man1/muffin-window-demo.1.gz %changelog +* Mon May 28 2012 leigh scott - 1.0.3-2 +- rebuilt + +* Sat May 05 2012 leigh scott - 1.0.3-1 +- update to 1.0.3 + * Wed Mar 14 2012 Leigh Scott - 1.0.2-2 - rebuilt diff --git a/rat4_gtk33.patch b/rat4_gtk33.patch deleted file mode 100644 index 34ecca0..0000000 --- a/rat4_gtk33.patch +++ /dev/null @@ -1,1497 +0,0 @@ -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 - -+#define CLUTTER_ENABLE_EXPERIMENTAL_API -+#include -+ - #include - - #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 - --#include "meta-shaped-texture.h" -+#define CLUTTER_ENABLE_EXPERIMENTAL_API -+#define COGL_ENABLE_EXPERIMENTAL_API -+ -+#include - #include "meta-texture-tower.h" - #include "meta-texture-rectangle.h" - - #include - #include -+#include - #include - - 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 - } - - /** -+ * meta_shaped_texture_set_pixmap: -+ * @stex: The #MetaShapedTexture -+ * @pixmap: The pixmap you want the stex to assume -+ */ -+void -+meta_shaped_texture_set_pixmap (MetaShapedTexture *stex, -+ Pixmap pixmap) -+{ -+ MetaShapedTexturePrivate *priv; -+ -+ g_return_if_fail (META_IS_SHAPED_TEXTURE (stex)); -+ -+ priv = stex->priv; -+ -+ if (priv->pixmap == pixmap) -+ return; -+ -+ priv->pixmap = pixmap; -+ -+ if (pixmap != None) -+ { -+ CoglContext *ctx = -+ clutter_backend_get_cogl_context (clutter_get_default_backend ()); -+ set_cogl_texture (stex, cogl_texture_pixmap_x11_new (ctx, pixmap, FALSE, NULL)); -+ } -+ else -+ set_cogl_texture (stex, COGL_INVALID_HANDLE); -+ -+ if (priv->create_mipmaps) -+ meta_texture_tower_set_base_texture (priv->paint_tower, priv->texture); -+} -+ -+/** -+ * meta_shaped_texture_get_texture: -+ * @stex: The #MetaShapedTexture -+ * -+ * Returns: (transfer none): the unshaped texture -+ */ -+CoglHandle -+meta_shaped_texture_get_texture (MetaShapedTexture *stex) -+{ -+ g_return_val_if_fail (META_IS_SHAPED_TEXTURE (stex), COGL_INVALID_HANDLE); -+ return stex->priv->texture; -+} -+ -+/** - * meta_shaped_texture_set_overlay_path: - * @stex: a #MetaShapedTexture - * @overlay_region: A region containing the parts of the mask to overlay. - * All rectangles in this region are wiped clear to full transparency, - * and the overlay path is clipped to this region. -- * @overlay_path (transfer full): This path will be painted onto the mask -+ * @overlay_path: (transfer full): This path will be painted onto the mask - * texture with a fully opaque source. Due to the lack of refcounting - * in #cairo_path_t, ownership of the path is assumed. - */ -@@ -772,7 +860,7 @@ meta_shaped_texture_set_overlay_path (Me - - /** - * meta_shaped_texture_set_clip_region: -- * @frame: a #MetaShapedTexture -+ * @stex: a #MetaShapedTexture - * @clip_region: (transfer full): the region of the texture that - * is visible and should be painted. OWNERSHIP IS ASSUMED BY - * THE FUNCTION (for efficiency to avoid a copy.) -diff -up inuxmint-muffin-0e57527/src/compositor/meta-shaped-texture.h /dev/null ---- a/src/compositor/meta-shaped-texture.h 2012-03-10 15:13:14.000000000 +0000 -+++ /dev/null 2012-03-12 09:07:57.316000049 +0000 -@@ -1,83 +0,0 @@ --/* -- * shaped texture -- * -- * An actor to draw a texture clipped to a list of rectangles -- * -- * Authored By Neil Roberts -- * -- * Copyright (C) 2008 Intel Corporation -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public License as -- * published by the Free Software Foundation; either version 2 of the -- * License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, but -- * WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -- * 02111-1307, USA. -- */ -- --#ifndef __META_SHAPED_TEXTURE_H__ --#define __META_SHAPED_TEXTURE_H__ -- --#include -- --#include --#include -- --G_BEGIN_DECLS -- --#define META_TYPE_SHAPED_TEXTURE (meta_shaped_texture_get_type()) --#define META_SHAPED_TEXTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),META_TYPE_SHAPED_TEXTURE, MetaShapedTexture)) --#define META_SHAPED_TEXTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_SHAPED_TEXTURE, MetaShapedTextureClass)) --#define META_IS_SHAPED_TEXTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_TYPE_SHAPED_TEXTURE)) --#define META_IS_SHAPED_TEXTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), META_TYPE_SHAPED_TEXTURE)) --#define META_SHAPED_TEXTURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), META_TYPE_SHAPED_TEXTURE, MetaShapedTextureClass)) -- --typedef struct _MetaShapedTexture MetaShapedTexture; --typedef struct _MetaShapedTextureClass MetaShapedTextureClass; --typedef struct _MetaShapedTexturePrivate MetaShapedTexturePrivate; -- --struct _MetaShapedTextureClass --{ -- ClutterX11TexturePixmapClass parent_class; --}; -- --struct _MetaShapedTexture --{ -- ClutterX11TexturePixmap parent; -- -- MetaShapedTexturePrivate *priv; --}; -- --GType meta_shaped_texture_get_type (void) G_GNUC_CONST; -- --ClutterActor *meta_shaped_texture_new (void); -- --void meta_shaped_texture_set_create_mipmaps (MetaShapedTexture *stex, -- gboolean create_mipmaps); -- --void meta_shaped_texture_clear (MetaShapedTexture *stex); -- --void meta_shaped_texture_set_shape_region (MetaShapedTexture *stex, -- cairo_region_t *region); -- --cairo_region_t *meta_shaped_texture_get_visible_pixels_region (MetaShapedTexture *stex); -- --void meta_shaped_texture_set_overlay_path (MetaShapedTexture *stex, -- cairo_region_t *overlay_region, -- cairo_path_t *overlay_path); -- --/* Assumes ownership of clip_region */ --void meta_shaped_texture_set_clip_region (MetaShapedTexture *stex, -- cairo_region_t *clip_region); -- --G_END_DECLS -- --#endif /* __META_SHAPED_TEXTURE_H__ */ -diff -urp linuxmint-muffin-0e57527/src/compositor/meta-texture-tower.c rat4-muffin-80db11c/src/compositor/meta-texture-tower.c ---- a/src/compositor/meta-texture-tower.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/compositor/meta-texture-tower.c 2012-03-12 02:40:04.000000000 +0000 -@@ -198,6 +198,9 @@ meta_texture_tower_update_area (MetaText - - g_return_if_fail (tower != NULL); - -+ if (tower->textures[0] == COGL_INVALID_HANDLE) -+ return; -+ - texture_width = cogl_texture_get_width (tower->textures[0]); - texture_height = cogl_texture_get_height (tower->textures[0]); - -diff -urp linuxmint-muffin-0e57527/src/compositor/meta-window-actor.c rat4-muffin-80db11c/src/compositor/meta-window-actor.c ---- a/src/compositor/meta-window-actor.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/compositor/meta-window-actor.c 2012-03-12 02:40:04.000000000 +0000 -@@ -18,11 +18,11 @@ - #include - #include "frame.h" - #include -+#include - #include "xprops.h" - - #include "compositor-private.h" - #include "meta-shadow-factory-private.h" --#include "meta-shaped-texture.h" - #include "meta-window-actor-private.h" - - enum { -@@ -946,23 +946,20 @@ static void - meta_window_actor_damage_all (MetaWindowActor *self) - { - MetaWindowActorPrivate *priv = self->priv; -- ClutterX11TexturePixmap *texture_x11 = CLUTTER_X11_TEXTURE_PIXMAP (priv->actor); -- guint pixmap_width = 0; -- guint pixmap_height = 0; -+ CoglHandle texture; - - if (!priv->needs_damage_all) - return; - -- g_object_get (texture_x11, -- "pixmap-width", &pixmap_width, -- "pixmap-height", &pixmap_height, -- NULL); -- -- clutter_x11_texture_pixmap_update_area (texture_x11, -- 0, -- 0, -- pixmap_width, -- pixmap_height); -+ texture = meta_shaped_texture_get_texture (META_SHAPED_TEXTURE (priv->actor)); -+ -+ if (!priv->mapped || priv->needs_pixmap) -+ return; -+ -+ meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor), -+ 0, 0, -+ cogl_texture_get_width (texture), -+ cogl_texture_get_height (texture)); - - priv->needs_damage_all = FALSE; - } -@@ -1201,9 +1198,8 @@ meta_window_actor_detach (MetaWindowActo - * you are supposed to be able to free a GLXPixmap after freeing the underlying - * pixmap, but it certainly doesn't work with current DRI/Mesa - */ -- clutter_x11_texture_pixmap_set_pixmap (CLUTTER_X11_TEXTURE_PIXMAP (priv->actor), -- None); -- meta_shaped_texture_clear (META_SHAPED_TEXTURE (priv->actor)); -+ meta_shaped_texture_set_pixmap (META_SHAPED_TEXTURE (priv->actor), -+ None); - cogl_flush(); - - XFreePixmap (xdisplay, priv->back_pixmap); -@@ -1827,19 +1823,6 @@ meta_window_actor_reset_visible_regions - meta_window_actor_clear_shadow_clip (self); - } - --static gboolean --texture_pixmap_using_extension (ClutterX11TexturePixmap *texture) --{ -- ClutterTexture *self = CLUTTER_TEXTURE (texture); -- CoglHandle handle; -- -- handle = clutter_texture_get_cogl_texture (self); -- -- return handle != NULL && -- cogl_is_texture_pixmap_x11 (handle) && -- cogl_texture_pixmap_x11_is_using_tfp_extension (handle); --} -- - static void - check_needs_pixmap (MetaWindowActor *self) - { -@@ -1873,7 +1856,7 @@ check_needs_pixmap (MetaWindowActor *sel - - if (priv->back_pixmap == None) - { -- gint pxm_width, pxm_height; -+ CoglHandle texture; - - meta_error_trap_push (display); - -@@ -1902,23 +1885,22 @@ check_needs_pixmap (MetaWindowActor *sel - meta_shaped_texture_set_create_mipmaps (META_SHAPED_TEXTURE (priv->actor), - FALSE); - -- clutter_x11_texture_pixmap_set_pixmap -- (CLUTTER_X11_TEXTURE_PIXMAP (priv->actor), -- priv->back_pixmap); -+ meta_shaped_texture_set_pixmap (META_SHAPED_TEXTURE (priv->actor), -+ priv->back_pixmap); -+ -+ texture = meta_shaped_texture_get_texture (META_SHAPED_TEXTURE (priv->actor)); -+ - /* - * This only works *after* actually setting the pixmap, so we have to - * do it here. - * See: http://bugzilla.clutter-project.org/show_bug.cgi?id=2236 - */ -- if (G_UNLIKELY (!texture_pixmap_using_extension (CLUTTER_X11_TEXTURE_PIXMAP (priv->actor)))) -+ if (G_UNLIKELY (!cogl_texture_pixmap_x11_is_using_tfp_extension (texture))) - g_warning ("NOTE: Not using GLX TFP!\n"); - -- g_object_get (priv->actor, -- "pixmap-width", &pxm_width, -- "pixmap-height", &pxm_height, -- NULL); -- -- meta_window_actor_update_bounding_region_and_borders (self, pxm_width, pxm_height); -+ meta_window_actor_update_bounding_region_and_borders (self, -+ cogl_texture_get_width (texture), -+ cogl_texture_get_height (texture)); - } - - priv->needs_pixmap = FALSE; -@@ -2011,7 +1993,6 @@ meta_window_actor_process_damage (MetaWi - XDamageNotifyEvent *event) - { - MetaWindowActorPrivate *priv = self->priv; -- ClutterX11TexturePixmap *texture_x11 = CLUTTER_X11_TEXTURE_PIXMAP (priv->actor); - - priv->received_damage = TRUE; - -@@ -2039,12 +2020,14 @@ meta_window_actor_process_damage (MetaWi - return; - } - -+ if (!priv->mapped || priv->needs_pixmap) -+ return; - -- clutter_x11_texture_pixmap_update_area (texture_x11, -- event->area.x, -- event->area.y, -- event->area.width, -- event->area.height); -+ meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor), -+ event->area.x, -+ event->area.y, -+ event->area.width, -+ event->area.height); - } - - void -diff -urp linuxmint-muffin-0e57527/src/Makefile.am rat4-muffin-80db11c/src/Makefile.am ---- a/src/Makefile.am 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/Makefile.am 2012-03-12 02:40:04.000000000 +0000 -@@ -54,7 +54,6 @@ libmuffin_la_SOURCES = \ - compositor/meta-shadow-factory.c \ - compositor/meta-shadow-factory-private.h \ - compositor/meta-shaped-texture.c \ -- compositor/meta-shaped-texture.h \ - compositor/meta-texture-rectangle.c \ - compositor/meta-texture-rectangle.h \ - compositor/meta-texture-tower.c \ -@@ -175,6 +174,7 @@ libmuffininclude_base_headers = \ - meta/main.h \ - meta/meta-background-actor.h \ - meta/meta-plugin.h \ -+ meta/meta-shaped-texture.h \ - meta/meta-shadow-factory.h \ - meta/meta-window-actor.h \ - meta/prefs.h \ -diff -up /dev/null rat4-muffin-80db11c/src/meta/meta-shaped-texture.h ---- /dev/null 2012-03-12 09:07:57.316000049 +0000 -+++ b/src/meta/meta-shaped-texture.h 2012-03-12 02:40:04.000000000 +0000 -@@ -0,0 +1,90 @@ -+/* -+ * shaped texture -+ * -+ * An actor to draw a texture clipped to a list of rectangles -+ * -+ * Authored By Neil Roberts -+ * -+ * Copyright (C) 2008 Intel Corporation -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, but -+ * WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+ * 02111-1307, USA. -+ */ -+ -+#ifndef __META_SHAPED_TEXTURE_H__ -+#define __META_SHAPED_TEXTURE_H__ -+ -+#include -+#include -+ -+G_BEGIN_DECLS -+ -+#define META_TYPE_SHAPED_TEXTURE (meta_shaped_texture_get_type()) -+#define META_SHAPED_TEXTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),META_TYPE_SHAPED_TEXTURE, MetaShapedTexture)) -+#define META_SHAPED_TEXTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), META_TYPE_SHAPED_TEXTURE, MetaShapedTextureClass)) -+#define META_IS_SHAPED_TEXTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), META_TYPE_SHAPED_TEXTURE)) -+#define META_IS_SHAPED_TEXTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), META_TYPE_SHAPED_TEXTURE)) -+#define META_SHAPED_TEXTURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), META_TYPE_SHAPED_TEXTURE, MetaShapedTextureClass)) -+ -+typedef struct _MetaShapedTexture MetaShapedTexture; -+typedef struct _MetaShapedTextureClass MetaShapedTextureClass; -+typedef struct _MetaShapedTexturePrivate MetaShapedTexturePrivate; -+ -+struct _MetaShapedTextureClass -+{ -+ ClutterActorClass parent_class; -+}; -+ -+struct _MetaShapedTexture -+{ -+ ClutterActor parent; -+ -+ MetaShapedTexturePrivate *priv; -+}; -+ -+GType meta_shaped_texture_get_type (void) G_GNUC_CONST; -+ -+ClutterActor *meta_shaped_texture_new (void); -+ -+void meta_shaped_texture_set_create_mipmaps (MetaShapedTexture *stex, -+ gboolean create_mipmaps); -+ -+void meta_shaped_texture_update_area (MetaShapedTexture *stex, -+ int x, -+ int y, -+ int width, -+ int height); -+ -+void meta_shaped_texture_set_pixmap (MetaShapedTexture *stex, -+ Pixmap pixmap); -+ -+CoglHandle meta_shaped_texture_get_texture (MetaShapedTexture *stex); -+ -+void meta_shaped_texture_set_shape_region (MetaShapedTexture *stex, -+ cairo_region_t *region); -+ -+cairo_region_t *meta_shaped_texture_get_visible_pixels_region (MetaShapedTexture *stex); -+ -+void meta_shaped_texture_set_overlay_path (MetaShapedTexture *stex, -+ cairo_region_t *overlay_region, -+ cairo_path_t *overlay_path); -+ -+/* Assumes ownership of clip_region */ -+void meta_shaped_texture_set_clip_region (MetaShapedTexture *stex, -+ cairo_region_t *clip_region); -+ -+G_END_DECLS -+ -+#endif /* __META_SHAPED_TEXTURE_H__ */ -diff -urp linuxmint-muffin-0e57527/src/tools/muffin-mag.c rat4-muffin-80db11c/src/tools/muffin-mag.c ---- a/src/tools/muffin-mag.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/tools/muffin-mag.c 2012-03-12 02:40:04.000000000 +0000 -@@ -148,8 +148,15 @@ grab_area_at_mouse (GtkWidget *invisible - static void - shutdown_grab (void) - { -- gdk_keyboard_ungrab (gtk_get_current_event_time ()); -- gdk_pointer_ungrab (gtk_get_current_event_time ()); -+ GdkDeviceManager *manager; -+ GdkDevice *device; -+ -+ manager = gdk_display_get_device_manager (gdk_display_get_default ()); -+ device = gdk_device_manager_get_client_pointer (manager); -+ -+ gdk_device_ungrab (device, gtk_get_current_event_time ()); -+ gdk_device_ungrab (gdk_device_get_associated_device (device), -+ gtk_get_current_event_time ()); - gtk_grab_remove (grab_widget); - } - -@@ -227,6 +234,8 @@ static void - begin_area_grab (void) - { - GdkWindow *window; -+ GdkDeviceManager *manager; -+ GdkDevice *device; - - if (grab_widget == NULL) - { -@@ -239,24 +248,31 @@ begin_area_grab (void) - } - - window = gtk_widget_get_window (grab_widget); -+ manager = gdk_display_get_device_manager (gdk_display_get_default ()); -+ device = gdk_device_manager_get_client_pointer (manager); - -- if (gdk_keyboard_grab (window, -- FALSE, -- gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS) -+ if (gdk_device_grab (device, -+ window, -+ GDK_OWNERSHIP_NONE, -+ FALSE, -+ GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK, -+ NULL, -+ gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS) - { -- g_warning ("Failed to grab keyboard to do eyedropper"); -+ g_warning ("Failed to grab pointer to do eyedropper"); - return; - } -- -- if (gdk_pointer_grab (window, -- FALSE, -- GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK, -- NULL, -- NULL, -- gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS) -+ -+ if (gdk_device_grab (gdk_device_get_associated_device (device), -+ window, -+ GDK_OWNERSHIP_NONE, -+ FALSE, -+ GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK, -+ NULL, -+ gtk_get_current_event_time ()) != GDK_GRAB_SUCCESS) - { -- gdk_keyboard_ungrab (GDK_CURRENT_TIME); -- g_warning ("Failed to grab pointer to do eyedropper"); -+ gdk_device_ungrab (device, gtk_get_current_event_time ()); -+ g_warning ("Failed to grab keyboard to do eyedropper"); - return; - } - -diff -urp linuxmint-muffin-0e57527/src/tools/muffin-window-demo.c rat4-muffin-80db11c/src/tools/muffin-window-demo.c ---- a/src/tools/muffin-window-demo.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/tools/muffin-window-demo.c 2012-03-12 02:40:04.000000000 +0000 -@@ -353,7 +353,7 @@ utility_cb (GtkAction *action, - - gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data)); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - gtk_container_add (GTK_CONTAINER (window), vbox); - -@@ -386,7 +386,7 @@ toolbar_cb (GtkAction *action, - - gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data)); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - gtk_container_add (GTK_CONTAINER (window), vbox); - -@@ -410,7 +410,7 @@ menu_cb (GtkAction *action, - - gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data)); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - gtk_container_add (GTK_CONTAINER (window), vbox); - -@@ -431,7 +431,7 @@ override_redirect_cb (GtkAction - window = gtk_window_new (GTK_WINDOW_POPUP); - gtk_window_set_title (GTK_WINDOW (window), "Override Redirect"); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - gtk_container_add (GTK_CONTAINER (window), vbox); - -@@ -455,7 +455,7 @@ border_only_cb (GtkAction *act - - gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (callback_data)); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - gtk_container_add (GTK_CONTAINER (window), vbox); - -@@ -477,7 +477,7 @@ changing_icon_cb (GtkAction *a - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (window), "Changing Icon"); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - gtk_container_add (GTK_CONTAINER (window), vbox); - -@@ -545,7 +545,7 @@ splashscreen_cb (GtkAction *ac - set_gtk_window_type (GTK_WINDOW (window), "_NET_WM_WINDOW_TYPE_SPLASHSCREEN"); - gtk_window_set_title (GTK_WINDOW (window), "Splashscreen"); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); - gtk_box_pack_start (GTK_BOX (vbox), image, FALSE, FALSE, 0); -@@ -581,11 +581,11 @@ make_dock (int type) - { - case DOCK_LEFT: - case DOCK_RIGHT: -- box = gtk_vbox_new (FALSE, 0); -+ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - break; - case DOCK_TOP: - case DOCK_BOTTOM: -- box = gtk_hbox_new (FALSE, 0); -+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - break; - case DOCK_ALL: - break; -@@ -909,8 +909,7 @@ static GtkWidget * - do_appwindow (void) - { - GtkWidget *window; -- GtkWidget *table; -- GtkWidget *handlebox; -+ GtkWidget *grid; - GtkWidget *statusbar; - GtkWidget *contents; - GtkWidget *sw; -@@ -931,9 +930,12 @@ do_appwindow (void) - g_signal_connect (G_OBJECT (window), "destroy", - G_CALLBACK (destroy_cb), NULL); - -- table = gtk_table_new (1, 4, FALSE); -- -- gtk_container_add (GTK_CONTAINER (window), table); -+ grid = gtk_grid_new (); -+ -+ gtk_widget_set_vexpand (grid, TRUE); -+ gtk_widget_set_hexpand (grid, TRUE); -+ -+ gtk_container_add (GTK_CONTAINER (window), grid); - - /* Create the menubar - */ -@@ -958,12 +960,12 @@ do_appwindow (void) - - gtk_ui_manager_add_ui_from_string (ui_manager, menu_item_string, -1, NULL); - -- gtk_table_attach (GTK_TABLE (table), -- gtk_ui_manager_get_widget (ui_manager, "/ui/menubar"), -- /* X direction */ /* Y direction */ -- 0, 1, 0, 1, -- GTK_EXPAND | GTK_FILL, 0, -- 0, 0); -+ gtk_grid_attach (GTK_GRID (grid), -+ gtk_ui_manager_get_widget (ui_manager, "/ui/menubar"), -+ 0, 0, 1, 1); -+ -+ gtk_widget_set_hexpand (gtk_ui_manager_get_widget (ui_manager, "/ui/menubar"), -+ TRUE); - - /* Create document - */ -@@ -976,13 +978,13 @@ do_appwindow (void) - - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), - GTK_SHADOW_IN); -- -- gtk_table_attach (GTK_TABLE (table), -- sw, -- /* X direction */ /* Y direction */ -- 0, 1, 2, 3, -- GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, -- 0, 0); -+ -+ gtk_grid_attach (GTK_GRID (grid), -+ sw, -+ 0, 2, 1, 1); -+ -+ gtk_widget_set_hexpand (sw, TRUE); -+ gtk_widget_set_vexpand (sw, TRUE); - - gtk_window_set_default_size (GTK_WINDOW (window), - 200, 200); -@@ -996,27 +998,22 @@ do_appwindow (void) - /* Create the toolbar - */ - -- handlebox = gtk_handle_box_new (); -+ gtk_grid_attach (GTK_GRID (grid), -+ gtk_ui_manager_get_widget (ui_manager, "/ui/toolbar"), -+ 0, 1, 1, 1); - -- gtk_container_add (GTK_CONTAINER (handlebox), -- gtk_ui_manager_get_widget (ui_manager, "/ui/toolbar")); -- -- gtk_table_attach (GTK_TABLE (table), -- handlebox, -- /* X direction */ /* Y direction */ -- 0, 1, 1, 2, -- GTK_EXPAND | GTK_FILL, 0, -- 0, 0); -+ gtk_widget_set_hexpand (gtk_ui_manager_get_widget (ui_manager, "/ui/toolbar"), -+ TRUE); - - /* Create statusbar */ - - statusbar = gtk_statusbar_new (); -- gtk_table_attach (GTK_TABLE (table), -- statusbar, -- /* X direction */ /* Y direction */ -- 0, 1, 3, 4, -- GTK_EXPAND | GTK_FILL, 0, -- 0, 0); -+ gtk_grid_attach (GTK_GRID (grid), -+ statusbar, -+ 0, 3, 1, 1); -+ -+ gtk_widget_set_hexpand (statusbar, -+ TRUE); - - /* Show text widget info in the statusbar */ - buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (contents)); -diff -urp linuxmint-muffin-0e57527/src/ui/frames.c rat4-muffin-80db11c/src/ui/frames.c ---- a/src/ui/frames.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/ui/frames.c 2012-03-12 02:40:04.000000000 +0000 -@@ -1942,7 +1942,7 @@ meta_frames_motion_notify_event (Gtk - Display *display; - - frames = META_FRAMES (widget); -- display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); -+ display = GDK_DISPLAY_XDISPLAY (gdk_window_get_display (event->window)); - - frame = meta_frames_lookup_window (frames, GDK_WINDOW_XID (event->window)); - if (frame == NULL) -@@ -1971,7 +1971,8 @@ meta_frames_motion_notify_event (Gtk - MetaFrameControl control; - int x, y; - -- gdk_window_get_pointer (frame->window, &x, &y, NULL); -+ gdk_window_get_device_position (frame->window, event->device, -+ &x, &y, NULL); - - /* Control is set to none unless it matches - * the current grab -@@ -2012,7 +2013,8 @@ meta_frames_motion_notify_event (Gtk - MetaFrameControl control; - int x, y; - -- gdk_window_get_pointer (frame->window, &x, &y, NULL); -+ gdk_window_get_device_position (frame->window, event->device, -+ &x, &y, NULL); - - control = get_control (frames, frame, x, y); - -diff -urp linuxmint-muffin-0e57527/src/ui/menu.c rat4-muffin-80db11c/src/ui/menu.c ---- a/src/ui/menu.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/ui/menu.c 2012-03-12 02:40:04.000000000 +0000 -@@ -116,7 +116,7 @@ popup_position_func (GtkMenu *menu, - - pos = user_data; - -- gtk_widget_size_request (GTK_WIDGET (menu), &req); -+ gtk_widget_get_preferred_size (GTK_WIDGET (menu), &req, NULL); - - *x = pos->x; - *y = pos->y; -diff -urp linuxmint-muffin-0e57527/src/ui/tabpopup.c rat4-muffin-80db11c/src/ui/tabpopup.c ---- a/src/ui/tabpopup.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/ui/tabpopup.c 2012-03-12 02:40:04.000000000 +0000 -@@ -217,9 +217,9 @@ meta_ui_tab_popup_new (const MetaTabEntr - gboolean outline) - { - MetaTabPopup *popup; -- int i, left, right, top, bottom; -+ int i, left, top; - int height; -- GtkWidget *table; -+ GtkWidget *grid; - GtkWidget *vbox; - GtkWidget *align; - GList *tmp; -@@ -273,12 +273,12 @@ meta_ui_tab_popup_new (const MetaTabEntr - if (i % width) - height += 1; - -- table = gtk_table_new (height, width, FALSE); -- vbox = gtk_vbox_new (FALSE, 0); -+ grid = gtk_grid_new (); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - frame = gtk_frame_new (NULL); - gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); -- gtk_container_set_border_width (GTK_CONTAINER (table), 1); -+ gtk_container_set_border_width (GTK_CONTAINER (grid), 1); - gtk_container_add (GTK_CONTAINER (popup->window), - frame); - gtk_container_add (GTK_CONTAINER (frame), -@@ -289,7 +289,7 @@ meta_ui_tab_popup_new (const MetaTabEntr - gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0); - - gtk_container_add (GTK_CONTAINER (align), -- table); -+ grid); - - popup->label = gtk_label_new (""); - -@@ -306,13 +306,11 @@ meta_ui_tab_popup_new (const MetaTabEntr - - max_label_width = 0; - top = 0; -- bottom = 1; - tmp = popup->entries; - - while (tmp && top < height) - { - left = 0; -- right = 1; - - while (tmp && left < width) - { -@@ -351,26 +349,22 @@ meta_ui_tab_popup_new (const MetaTabEntr - - te->widget = image; - -- gtk_table_attach (GTK_TABLE (table), -- te->widget, -- left, right, top, bottom, -- 0, 0, -- 0, 0); -+ gtk_grid_attach (GTK_GRID (grid), -+ te->widget, -+ left, top, 1, 1); - - /* Efficiency rules! */ - gtk_label_set_markup (GTK_LABEL (popup->label), - te->title); -- gtk_widget_size_request (popup->label, &req); -+ gtk_widget_get_preferred_size (popup->label, &req, NULL); - max_label_width = MAX (max_label_width, req.width); - - tmp = tmp->next; - - ++left; -- ++right; - } - - ++top; -- ++bottom; - } - - /* remove all the temporary text */ -diff -urp linuxmint-muffin-0e57527/src/ui/theme.c rat4-muffin-80db11c/src/ui/theme.c ---- a/src/ui/theme.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/ui/theme.c 2012-03-12 02:40:04.000000000 +0000 -@@ -6403,6 +6403,8 @@ meta_gtk_state_from_string (const char * - return GTK_STATE_FLAG_INCONSISTENT; - else if (g_ascii_strcasecmp ("focused", str) == 0) - return GTK_STATE_FLAG_FOCUSED; -+ else if (g_ascii_strcasecmp ("backdrop", str) == 0) -+ return GTK_STATE_FLAG_BACKDROP; - else - return -1; /* hack */ - } -@@ -6426,6 +6428,8 @@ meta_gtk_state_to_string (GtkStateFlags - return "INCONSISTENT"; - case GTK_STATE_FLAG_FOCUSED: - return "FOCUSED"; -+ case GTK_STATE_FLAG_BACKDROP: -+ return "BACKDROP"; - } - - return ""; -diff -urp linuxmint-muffin-0e57527/src/ui/theme-viewer.c rat4-muffin-80db11c/src/ui/theme-viewer.c ---- a/src/ui/theme-viewer.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/ui/theme-viewer.c 2012-03-12 02:40:04.000000000 +0000 -@@ -122,19 +122,18 @@ static GtkActionEntry tool_items[] = - static GtkWidget * - normal_contents (void) - { -- GtkWidget *table; -- GtkWidget *handlebox; -+ GtkWidget *grid; - GtkWidget *statusbar; - GtkWidget *contents; - GtkWidget *sw; - GtkActionGroup *action_group; - GtkUIManager *ui_manager; - -- table = gtk_table_new (1, 4, FALSE); -- -+ grid = gtk_grid_new (); -+ - /* Create the menubar - */ -- -+ - action_group = gtk_action_group_new ("mainmenu"); - gtk_action_group_add_actions (action_group, - menu_items, -@@ -152,24 +151,15 @@ normal_contents (void) - /* create menu items */ - gtk_ui_manager_add_ui_from_string (ui_manager, menu_item_string, -1, NULL); - -- gtk_table_attach (GTK_TABLE (table), -- gtk_ui_manager_get_widget (ui_manager, "/ui/menubar"), -- /* X direction */ /* Y direction */ -- 0, 1, 0, 1, -- GTK_EXPAND | GTK_FILL, 0, -- 0, 0); -- -- handlebox = gtk_handle_box_new (); -- -- gtk_container_add (GTK_CONTAINER (handlebox), -- gtk_ui_manager_get_widget (ui_manager, "/ui/toolbar")); -- -- gtk_table_attach (GTK_TABLE (table), -- handlebox, -- /* X direction */ /* Y direction */ -- 0, 1, 1, 2, -- GTK_EXPAND | GTK_FILL, 0, -- 0, 0); -+ gtk_grid_attach (GTK_GRID (grid), -+ gtk_ui_manager_get_widget (ui_manager, "/ui/menubar"), -+ 0, 0, 1, 1); -+ -+ /* Create the toolbar -+ */ -+ gtk_grid_attach (GTK_GRID (grid), -+ gtk_ui_manager_get_widget (ui_manager, "/ui/toolbar"), -+ 0, 1, 1, 1); - - /* Create document - */ -@@ -183,12 +173,9 @@ normal_contents (void) - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), - GTK_SHADOW_IN); - -- gtk_table_attach (GTK_TABLE (table), -- sw, -- /* X direction */ /* Y direction */ -- 0, 1, 2, 3, -- GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, -- 0, 0); -+ gtk_grid_attach (GTK_GRID (grid), -+ sw, -+ 0, 2, 1, 1); - - contents = gtk_text_view_new (); - gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (contents), -@@ -200,18 +187,15 @@ normal_contents (void) - /* Create statusbar */ - - statusbar = gtk_statusbar_new (); -- gtk_table_attach (GTK_TABLE (table), -- statusbar, -- /* X direction */ /* Y direction */ -- 0, 1, 3, 4, -- GTK_EXPAND | GTK_FILL, 0, -- 0, 0); -+ gtk_grid_attach (GTK_GRID (grid), -+ statusbar, -+ 0, 3, 1, 1); - -- gtk_widget_show_all (table); -+ gtk_widget_show_all (grid); - - g_object_unref (ui_manager); - -- return table; -+ return grid; - } - - static void -@@ -233,7 +217,7 @@ dialog_contents (void) - GtkWidget *image; - GtkWidget *button; - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - action_area = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); - -@@ -258,7 +242,7 @@ dialog_contents (void) - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - -- hbox = gtk_hbox_new (FALSE, 6); -+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); - - gtk_box_pack_start (GTK_BOX (hbox), image, - FALSE, FALSE, 0); -@@ -278,11 +262,11 @@ dialog_contents (void) - static GtkWidget* - utility_contents (void) - { -- GtkWidget *table; -+ GtkWidget *grid; - GtkWidget *button; - int i, j; - -- table = gtk_table_new (3, 4, FALSE); -+ grid = gtk_grid_new (); - - i = 0; - while (i < 3) -@@ -298,12 +282,9 @@ utility_contents (void) - - g_free (str); - -- gtk_table_attach (GTK_TABLE (table), -- button, -- /* X direction */ /* Y direction */ -- i, i+1, j, j+1, -- GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, -- 0, 0); -+ gtk_grid_attach (GTK_GRID (grid), -+ button, -+ i, j, 1, 1); - - ++j; - } -@@ -311,9 +292,9 @@ utility_contents (void) - ++i; - } - -- gtk_widget_show_all (table); -+ gtk_widget_show_all (grid); - -- return table; -+ return grid; - } - - static GtkWidget* -@@ -328,7 +309,7 @@ menu_contents (void) - gtk_frame_set_shadow_type (GTK_FRAME (frame), - GTK_SHADOW_OUT); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - - i = 0; - while (i < 10) -@@ -365,7 +346,7 @@ border_only_contents (void) - color.alpha = 1.0; - gtk_widget_override_background_color (event_box, 0, &color); - -- vbox = gtk_vbox_new (FALSE, 0); -+ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 3); - - w = gtk_label_new (_("Border-only window")); -@@ -487,7 +468,7 @@ preview_collection (int font_size, - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - -- box = gtk_vbox_new (FALSE, 0); -+ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_box_set_spacing (GTK_BOX (box), 20); - gtk_container_set_border_width (GTK_CONTAINER (box), 20); - -@@ -711,7 +692,7 @@ previews_of_button_layouts (void) - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - -- box = gtk_vbox_new (FALSE, 0); -+ box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_box_set_spacing (GTK_BOX (box), 20); - gtk_container_set_border_width (GTK_CONTAINER (box), 20); - -diff -urp linuxmint-muffin-0e57527/src/ui/ui.c rat4-muffin-80db11c/src/ui/ui.c ---- a/src/ui/ui.c 2012-03-10 15:13:14.000000000 +0000 -+++ b/src/ui/ui.c 2012-03-12 02:40:04.000000000 +0000 -@@ -102,6 +102,7 @@ maybe_redirect_mouse_event (XEvent *xeve - { - GdkDisplay *gdisplay; - GdkDeviceManager *gmanager; -+ GdkDevice *gdevice; - MetaUI *ui; - GdkEvent *gevent; - GdkWindow *gdk_window; -@@ -133,11 +134,14 @@ maybe_redirect_mouse_event (XEvent *xeve - if (gdk_window == NULL) - return FALSE; - -+ gmanager = gdk_display_get_device_manager (gdisplay); -+ gdevice = gdk_device_manager_get_client_pointer (gmanager); -+ - /* If GDK already thinks it has a grab, we better let it see events; this - * is the menu-navigation case and events need to get sent to the appropriate - * (client-side) subwindow for individual menu items. - */ -- if (gdk_display_pointer_is_grabbed (gdisplay)) -+ if (gdk_display_device_is_grabbed (gdisplay, gdevice)) - return FALSE; - - switch (xevent->type) -@@ -207,8 +211,7 @@ maybe_redirect_mouse_event (XEvent *xeve - } - - /* If we've gotten here, we've created the gdk_event and should send it on */ -- gmanager = gdk_display_get_device_manager (gdisplay); -- gdk_event_set_device (gevent, gdk_device_manager_get_client_pointer (gmanager)); -+ gdk_event_set_device (gevent, gdevice); - gtk_main_do_event (gevent); - gdk_event_free (gevent); - diff --git a/sources b/sources index d51abc6..eb397c6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7da13590ceb8677209c15d1f2d9e024f muffin-1.0.2.tar.gz +6d05a24e117e602a5803c90217ec1790 muffin-1.0.3.tar.gz