diff options
Diffstat (limited to 'x11-wm/mutter/files')
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; + } + } + |