+++ /dev/null
-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
-
+++ /dev/null
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-GCONF_DEBUG="yes"
-
-inherit eutils gnome2
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://git.gnome.org/browse/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="+introspection +kms test wayland"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-
-# libXi-1.7.4 or newer needed per:
-# https://bugzilla.gnome.org/show_bug.cgi?id=738944
-COMMON_DEPEND="
- >=x11-libs/pango-1.2[X,introspection?]
- >=x11-libs/cairo-1.10[X]
- >=x11-libs/gtk+-3.9.11:3[X,introspection?]
- >=dev-libs/glib-2.36.0:2[dbus]
- >=media-libs/clutter-1.21.3:1.0[introspection?]
- >=media-libs/cogl-1.17.1:1.0=[introspection?]
- >=media-libs/libcanberra-0.26[gtk3]
- >=x11-libs/startup-notification-0.7
- >=x11-libs/libXcomposite-0.2
- >=gnome-base/gsettings-desktop-schemas-3.15.92[introspection?]
- gnome-base/gnome-desktop:3=
- >sys-power/upower-0.99:=
-
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libXcomposite-0.2
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- >=x11-libs/libXi-1.7.4
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libxcb
- x11-libs/libxkbfile
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-misc/xkeyboard-config
-
- gnome-extra/zenity
-
- introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- kms? (
- dev-libs/libinput
- >=media-libs/clutter-1.20[egl]
- media-libs/cogl:1.0=[kms]
- >=media-libs/mesa-10.3[gbm]
- sys-apps/systemd
- virtual/libgudev
- x11-libs/libdrm:= )
- wayland? (
- >=dev-libs/wayland-1.6.90
- >=media-libs/clutter-1.20[wayland]
- x11-base/xorg-server[wayland] )
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-util/gtk-doc-am-1.15
- >=dev-util/intltool-0.41
- sys-devel/gettext
- virtual/pkgconfig
- x11-proto/xextproto
- x11-proto/xineramaproto
- x11-proto/xproto
- test? ( app-text/docbook-xml-dtd:4.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- !x11-misc/expocity
-"
-
-src_prepare() {
- # surface-actor-x11: Make sure to set a size when unredirected (from 3.16 branch)
- epatch "${FILESDIR}"/${P}-size-unredirected.patch
- gnome2_src_prepare
-}
-
-src_configure() {
- gnome2_src_configure \
- --disable-static \
- --enable-sm \
- --enable-startup-notification \
- --enable-verbose-mode \
- --with-libcanberra \
- $(use_enable introspection) \
- $(use_enable kms native-backend) \
- $(use_enable wayland)
-}
+++ /dev/null
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-GCONF_DEBUG="yes"
-
-inherit eutils gnome2
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://git.gnome.org/browse/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="+introspection +kms test wayland"
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-
-# libXi-1.7.4 or newer needed per:
-# https://bugzilla.gnome.org/show_bug.cgi?id=738944
-COMMON_DEPEND="
- >=x11-libs/pango-1.2[X,introspection?]
- >=x11-libs/cairo-1.10[X]
- >=x11-libs/gtk+-3.9.11:3[X,introspection?]
- >=dev-libs/glib-2.36.0:2[dbus]
- >=media-libs/clutter-1.21.3:1.0[introspection?]
- >=media-libs/cogl-1.17.1:1.0=[introspection?]
- >=media-libs/libcanberra-0.26[gtk3]
- >=x11-libs/startup-notification-0.7
- >=x11-libs/libXcomposite-0.2
- >=gnome-base/gsettings-desktop-schemas-3.15.92[introspection?]
- gnome-base/gnome-desktop:3=
- >sys-power/upower-0.99:=
-
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libXcomposite-0.2
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- >=x11-libs/libXi-1.7.4
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libxcb
- x11-libs/libxkbfile
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-misc/xkeyboard-config
-
- gnome-extra/zenity
-
- introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- kms? (
- dev-libs/libinput
- >=media-libs/clutter-1.20[egl]
- media-libs/cogl:1.0=[kms]
- >=media-libs/mesa-10.3[gbm]
- sys-apps/systemd
- virtual/libgudev
- x11-libs/libdrm:= )
- wayland? (
- >=dev-libs/wayland-1.6.90
- >=media-libs/clutter-1.20[wayland]
- x11-base/xorg-server[wayland] )
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-util/gtk-doc-am-1.15
- >=dev-util/intltool-0.41
- sys-devel/gettext
- virtual/pkgconfig
- x11-proto/xextproto
- x11-proto/xineramaproto
- x11-proto/xproto
- test? ( app-text/docbook-xml-dtd:4.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- !x11-misc/expocity
-"
-
-src_configure() {
- gnome2_src_configure \
- --disable-static \
- --enable-sm \
- --enable-startup-notification \
- --enable-verbose-mode \
- --with-libcanberra \
- $(use_enable introspection) \
- $(use_enable kms native-backend) \
- $(use_enable wayland)
-}