summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/mutter/files')
-rw-r--r--x11-wm/mutter/files/mutter-3.14.2-automagic.patch90
-rw-r--r--x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch151
-rw-r--r--x11-wm/mutter/files/mutter-3.2.1-ignore-shadow-and-padding.patch91
3 files changed, 332 insertions, 0 deletions
diff --git a/x11-wm/mutter/files/mutter-3.14.2-automagic.patch b/x11-wm/mutter/files/mutter-3.14.2-automagic.patch
new file mode 100644
index 000000000000..3956004535a6
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.14.2-automagic.patch
@@ -0,0 +1,90 @@
+From d723a752982e12b7a7fb7998c3e28efd9082abd9 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Mon, 8 Dec 2014 22:00:32 +0100
+Subject: [PATCH] Make wayland support optional
+
+---
+ configure.ac | 58 +++++++++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 43 insertions(+), 15 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0870afa..251f909 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -200,23 +200,49 @@ AC_SUBST(XWAYLAND_PATH)
+
+ PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
+
+-PKG_CHECK_MODULES(MUTTER_NATIVE_BACKEND, [clutter-egl-1.0 libdrm libsystemd libinput gbm >= 10.3], [have_native_backend=yes], [have_native_backend=no])
+-if test $have_native_backend = yes; then
+- AC_DEFINE([HAVE_NATIVE_BACKEND],[1],[Define if you want to enable the native (KMS) backend based on systemd])
+-fi
+-AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test $have_native_backend = yes])
+-
+-PKG_CHECK_MODULES(MUTTER_WAYLAND, [clutter-wayland-1.0 clutter-wayland-compositor-1.0 wayland-server >= 1.5.90], [have_wayland=yes], [have_wayland=no])
+-if test $have_wayland = yes; then
+- AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
+- AS_IF([test $WAYLAND_SCANNER = "no"],
+- AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols]))
+- AC_SUBST([WAYLAND_SCANNER])
+-
+- AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support])
+-fi
++have_wayland=no
++AC_ARG_ENABLE(
++ [wayland],
++ AS_HELP_STRING([--disable-wayland], [disable mutter on wayland support]),
++ [],
++ enable_wayland=yes
++)
++AS_IF([test "$enable_wayland" != "no"],
++ [
++ PKG_CHECK_MODULES([MUTTER_WAYLAND],
++ [clutter-wayland-1.0 clutter-wayland-compositor-1.0 wayland-server >= 1.5.90],
++ [
++ have_wayland=yes
++ AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
++ AS_IF([test $WAYLAND_SCANNER = "no"],
++ [AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols])])
++ AC_SUBST([WAYLAND_SCANNER])
++ AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support])
++ ],
++ [have_wayland=no])
++])
+ AM_CONDITIONAL([HAVE_WAYLAND],[test $have_wayland = yes])
+
++have_native_backend=no
++AC_ARG_ENABLE(
++ [native-backend],
++ AS_HELP_STRING([--disable-native-backend], [disable mutter native (KMS) backend]),
++ [],
++ enable_native_backend=yes
++)
++AS_IF([test "$enable_native_backend" != "no"],
++ [
++ PKG_CHECK_MODULES([MUTTER_NATIVE_BACKEND],
++ [clutter-egl-1.0 libdrm libsystemd libinput gudev-1.0 gbm >= 10.3],
++ [
++ have_native_backend=yes
++ AC_DEFINE([HAVE_NATIVE_BACKEND],[1],
++ [Define if you want to enable the native (KMS) backend based on systemd])
++ ],
++ [have_native_backend=no])
++])
++AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test $have_native_backend = yes])
++
+ PKG_CHECK_EXISTS([xi >= 1.6.99.1],
+ AC_DEFINE([HAVE_XI23],[1],[Define if you have support for XInput 2.3 or greater]))
+
+@@ -416,6 +442,8 @@ mutter-$VERSION
+ libcanberra: ${have_libcanberra}
+ Introspection: ${found_introspection}
+ Session management: ${found_sm}
++ Wayland: ${have_wayland}
++ Native (KMS) backend: ${have_native_backend}
+ "
+
+
+--
+2.2.0
+
diff --git a/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch b/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch
new file mode 100644
index 000000000000..0999ebd582a0
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch
@@ -0,0 +1,151 @@
+From 351f444f9d16a90636feb217b15f0f376bf96d85 Mon Sep 17 00:00:00 2001
+From: "Jasper St. Pierre" <jstpierre@mecheye.net>
+Date: Tue, 23 Jun 2015 16:23:45 -0700
+Subject: surface-actor-x11: Make sure to set a size when unredirected
+
+When we're unredirected, we don't have a pixmap, and thus our allocation
+becomes 0x0. So when events come in, they pass right through our actor,
+going to the one underneath in the stack.
+
+Fix this by having a fallback size on the shaped texture actor when
+we're unredirected, causing it to always have a valid allocation.
+
+This fixes clicking on stuff in sloppy / mouse mode focus.
+
+diff --git a/src/compositor/meta-shaped-texture-private.h b/src/compositor/meta-shaped-texture-private.h
+index 4ee8027..21c6335 100644
+--- a/src/compositor/meta-shaped-texture-private.h
++++ b/src/compositor/meta-shaped-texture-private.h
+@@ -32,6 +32,9 @@
+ ClutterActor *meta_shaped_texture_new (void);
+ void meta_shaped_texture_set_texture (MetaShapedTexture *stex,
+ CoglTexture *texture);
++void meta_shaped_texture_set_fallback_size (MetaShapedTexture *stex,
++ guint fallback_width,
++ guint fallback_height);
+ gboolean meta_shaped_texture_is_obscured (MetaShapedTexture *self);
+
+ #endif
+diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c
+index 163c5e6..8701d1b 100644
+--- a/src/compositor/meta-shaped-texture.c
++++ b/src/compositor/meta-shaped-texture.c
+@@ -86,6 +86,7 @@ struct _MetaShapedTexturePrivate
+ cairo_region_t *unobscured_region;
+
+ guint tex_width, tex_height;
++ guint fallback_width, fallback_height;
+
+ guint create_mipmaps : 1;
+ };
+@@ -136,7 +137,20 @@ set_unobscured_region (MetaShapedTexture *self,
+ g_clear_pointer (&priv->unobscured_region, (GDestroyNotify) cairo_region_destroy);
+ if (unobscured_region)
+ {
+- cairo_rectangle_int_t bounds = { 0, 0, priv->tex_width, priv->tex_height };
++ guint width, height;
++
++ if (priv->texture)
++ {
++ width = priv->tex_width;
++ height = priv->tex_height;
++ }
++ else
++ {
++ width = priv->fallback_width;
++ height = priv->fallback_height;
++ }
++
++ cairo_rectangle_int_t bounds = { 0, 0, width, height };
+ priv->unobscured_region = cairo_region_copy (unobscured_region);
+ cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
+ }
+@@ -499,16 +513,21 @@ meta_shaped_texture_get_preferred_width (ClutterActor *self,
+ gfloat *natural_width_p)
+ {
+ MetaShapedTexturePrivate *priv;
++ guint width;
+
+ g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
+
+ priv = META_SHAPED_TEXTURE (self)->priv;
+
+- if (min_width_p)
+- *min_width_p = priv->tex_width;
++ if (priv->texture)
++ width = priv->tex_width;
++ else
++ width = priv->fallback_width;
+
++ if (min_width_p)
++ *min_width_p = width;
+ if (natural_width_p)
+- *natural_width_p = priv->tex_width;
++ *natural_width_p = width;
+ }
+
+ static void
+@@ -518,16 +537,21 @@ meta_shaped_texture_get_preferred_height (ClutterActor *self,
+ gfloat *natural_height_p)
+ {
+ MetaShapedTexturePrivate *priv;
++ guint height;
+
+ g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
+
+ priv = META_SHAPED_TEXTURE (self)->priv;
+
+- if (min_height_p)
+- *min_height_p = priv->tex_height;
++ if (priv->texture)
++ height = priv->tex_height;
++ else
++ height = priv->fallback_height;
+
++ if (min_height_p)
++ *min_height_p = height;
+ if (natural_height_p)
+- *natural_height_p = priv->tex_height;
++ *natural_height_p = height;
+ }
+
+ static cairo_region_t *
+@@ -860,6 +884,17 @@ meta_shaped_texture_get_image (MetaShapedTexture *stex,
+ return surface;
+ }
+
++void
++meta_shaped_texture_set_fallback_size (MetaShapedTexture *self,
++ guint fallback_width,
++ guint fallback_height)
++{
++ MetaShapedTexturePrivate *priv = self->priv;
++
++ priv->fallback_width = fallback_width;
++ priv->fallback_height = fallback_height;
++}
++
+ static void
+ meta_shaped_texture_cull_out (MetaCullable *cullable,
+ cairo_region_t *unobscured_region,
+diff --git a/src/compositor/meta-surface-actor-x11.c b/src/compositor/meta-surface-actor-x11.c
+index 4aa7ecd..b50b8f2 100644
+--- a/src/compositor/meta-surface-actor-x11.c
++++ b/src/compositor/meta-surface-actor-x11.c
+@@ -416,6 +416,7 @@ meta_surface_actor_x11_set_size (MetaSurfaceActorX11 *self,
+ int width, int height)
+ {
+ MetaSurfaceActorX11Private *priv = meta_surface_actor_x11_get_instance_private (self);
++ MetaShapedTexture *stex = meta_surface_actor_get_texture (META_SURFACE_ACTOR (self));
+
+ if (priv->last_width == width &&
+ priv->last_height == height)
+@@ -424,4 +425,5 @@ meta_surface_actor_x11_set_size (MetaSurfaceActorX11 *self,
+ priv->size_changed = TRUE;
+ priv->last_width = width;
+ priv->last_height = height;
++ meta_shaped_texture_set_fallback_size (stex, width, height);
+ }
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.2.1-ignore-shadow-and-padding.patch b/x11-wm/mutter/files/mutter-3.2.1-ignore-shadow-and-padding.patch
new file mode 100644
index 000000000000..bf4649e75ed8
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.2.1-ignore-shadow-and-padding.patch
@@ -0,0 +1,91 @@
+Patch author: Timo Kluck <tkluck@infty.nl> Wed, 21 Sep 2011 17:51:28 +0200
+
+Patch to silently ignore padding and shadow tags in Ubuntu metacity themes.
+
+https://bugs.launchpad.net/bugs/800315
+https://bugs.gentoo.org/show_bug.cgi?id=396673
+
+diff --git a/src/ui/theme-parser.c b/src/ui/theme-parser.c
+index 9063541..63a881f 100644
+--- a/src/ui/theme-parser.c
++++ b/src/ui/theme-parser.c
+@@ -90,7 +90,9 @@ typedef enum
+ STATE_WINDOW,
+ /* things we don't use any more but we can still parse: */
+ STATE_MENU_ICON,
+- STATE_FALLBACK
++ STATE_FALLBACK,
++ /* an ubuntu specific ignore-this-element state */
++ UBUNTU_STATE_IGNORE
+ } ParseState;
+
+ typedef struct
+@@ -1306,7 +1308,19 @@ parse_toplevel_element (GMarkupParseContext *context,
+ */
+ push_state (info, STATE_FALLBACK);
+ }
+- else
++ else if (ELEMENT_IS ("shadow"))
++ {
++ /* ubuntu specific, workaround for light-themes: silently ignore shadow tag.
++ */
++ push_state (info, UBUNTU_STATE_IGNORE);
++ }
++ else if (ELEMENT_IS ("padding"))
++ {
++ /* ubuntu specific, workaround for light-themes: silently ignore padding tag.
++ */
++ push_state (info, UBUNTU_STATE_IGNORE);
++ }
++ else
+ {
+ set_error (error, context,
+ G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
+@@ -3027,6 +3041,18 @@ parse_style_element (GMarkupParseContext *context,
+
+ push_state (info, STATE_BUTTON);
+ }
++ else if (ELEMENT_IS ("shadow"))
++ {
++ /* ubuntu specific, workaround for light-themes: silently ignore shadow tag.
++ */
++ push_state (info, UBUNTU_STATE_IGNORE);
++ }
++ else if (ELEMENT_IS ("padding"))
++ {
++ /* ubuntu specific, workaround for light-themes: silently ignore padding tag.
++ */
++ push_state (info, UBUNTU_STATE_IGNORE);
++ }
+ else
+ {
+ set_error (error, context,
+@@ -3671,6 +3697,8 @@ start_element_handler (GMarkupParseContext *context,
+ _("Element <%s> is not allowed inside a <%s> element"),
+ element_name, "fallback");
+ break;
++ case UBUNTU_STATE_IGNORE:
++ break;
+ }
+ }
+
+@@ -3960,6 +3988,9 @@ end_element_handler (GMarkupParseContext *context,
+ pop_state (info);
+ g_assert (peek_state (info) == STATE_THEME);
+ break;
++ case UBUNTU_STATE_IGNORE:
++ pop_state (info);
++ break;
+ }
+
+ pop_required_version (info);
+@@ -4165,6 +4196,9 @@ text_handler (GMarkupParseContext *context,
+ case STATE_FALLBACK:
+ NO_TEXT ("fallback");
+ break;
++ case UBUNTU_STATE_IGNORE:
++ NO_TEXT ("ignored_element");
++ break;
+ }
+ }
+