[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#771533: marked as done (unblock: mutter/3.14.2-1)



Your message dated Sun, 30 Nov 2014 15:45:16 +0000
with message-id <1417362316.2472.23.camel@adam-barratt.org.uk>
and subject line Re: Bug#771533: unblock: mutter/3.14.2-1
has caused the Debian Bug report #771533,
regarding unblock: mutter/3.14.2-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
771533: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771533
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Hi,

please unblock mutter for the following changes:

mutter (3.14.2-1) unstable; urgency=medium

  * New upstream bugfix release.
  * 10_window-actor_unredirect.patch: patch from upstream git. Fix crash 
    when closing a window.
  * 11_black_background.patch: patch from upstream git. Don’t set a 
    black background when switching from the display manager.

Attaching upstream changes between 3.14.1 and 3.14.2.

unblock mutter/3.14.2-1

Thanks,
-- 
 .''`.        Josselin Mouette
: :' :
`. `'
  `-
Index: debian/changelog
===================================================================
--- debian/changelog	(révision 43963)
+++ debian/changelog	(révision 43964)
@@ -1,3 +1,13 @@
+mutter (3.14.2-1) unstable; urgency=medium
+
+  * New upstream bugfix release.
+  * 10_window-actor_unredirect.patch: patch from upstream git. Fix crash 
+    when closing a window.
+  * 11_black_background.patch: patch from upstream git. Don’t set a 
+    black background when switching from the display manager.
+
+ -- Josselin Mouette <joss@debian.org>  Sun, 30 Nov 2014 15:05:14 +0100
+
 mutter (3.14.1-2) unstable; urgency=medium
 
   * gir1.2-mutter-3.0: tighten dependency on libmutter0e by making
Index: debian/patches/10_window-actor_unredirect.patch
===================================================================
--- debian/patches/10_window-actor_unredirect.patch	(révision 0)
+++ debian/patches/10_window-actor_unredirect.patch	(révision 43964)
@@ -0,0 +1,27 @@
+From 2e7b9e0dfed8ca637cf70bc160489610b93234fd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
+Date: Fri, 14 Nov 2014 13:23:15 +0100
+Subject: window-actor: Do not request unredirection when destroyed
+
+WindowActors can outlive their corresponding window to animate unmap.
+Unredirecting the actor does not make sense in that case, so make
+sure to not request it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=740133
+
+diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
+index 39864d6..eb21c46 100644
+--- a/src/compositor/meta-window-actor.c
++++ b/src/compositor/meta-window-actor.c
+@@ -1155,7 +1155,7 @@ gboolean
+ meta_window_actor_should_unredirect (MetaWindowActor *self)
+ {
+   MetaWindowActorPrivate *priv = self->priv;
+-  if (priv->surface)
++  if (!meta_window_actor_is_destroyed (self) && priv->surface)
+     return meta_surface_actor_should_unredirect (priv->surface);
+   else
+     return FALSE;
+-- 
+cgit v0.10.1
+
Index: debian/patches/11_black_background.patch
===================================================================
--- debian/patches/11_black_background.patch	(révision 0)
+++ debian/patches/11_black_background.patch	(révision 43964)
@@ -0,0 +1,44 @@
+From 6d3e64226d43a55f4554e1dcacaf56d81d3dae86 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Thu, 20 Nov 2014 14:40:19 -0500
+Subject: Revert "screen: Set a black background for testing purposes"
+
+This reverts commit ec8ed1dbb04ce8169c0a38ddf066d5565117c587.
+
+1) It turns out to add a momentary flicker from the transition
+between the login screen and user session
+2) It actually isn't needed anymore since bug 733026
+
+https://bugzilla.gnome.org/show_bug.cgi?id=740377
+
+diff --git a/src/core/screen.c b/src/core/screen.c
+index dbf3f60..b26137e 100644
+--- a/src/core/screen.c
++++ b/src/core/screen.c
+@@ -496,15 +496,6 @@ create_guard_window (Display *xdisplay, MetaScreen *screen)
+   return guard_window;
+ }
+ 
+-/* Set a black background on the root window so that we don't
+- * see confusing old copies of old windows when debugging
+- * and testing. */
+-static void
+-meta_screen_set_background (MetaScreen *screen)
+-{
+-  XSetWindowBackground (screen->display->xdisplay, screen->xroot, 0x00000000);
+-}
+-
+ MetaScreen*
+ meta_screen_new (MetaDisplay *display,
+                  int          number,
+@@ -709,7 +700,6 @@ meta_screen_new (MetaDisplay *display,
+   reload_monitor_infos (screen);
+ 
+   meta_screen_set_cursor (screen, META_CURSOR_DEFAULT);
+-  meta_screen_set_background (screen);
+ 
+   /* Handle creating a no_focus_window for this screen */
+   screen->no_focus_window =
+-- 
+cgit v0.10.1
+
Index: debian/patches/series
===================================================================
--- debian/patches/series	(révision 43963)
+++ debian/patches/series	(révision 43964)
@@ -1 +1,3 @@
 01_Wcast-align.patch
+10_window-actor_unredirect.patch
+11_black_background.patch
Index: debian/control
===================================================================
--- debian/control	(révision 43963)
+++ debian/control	(révision 43964)
@@ -6,7 +6,7 @@
 Section: x11
 Priority: optional
 Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
-Uploaders: Andreas Henriksson <andreas@fatal.se>, Michael Biebl <biebl@debian.org>, Sjoerd Simons <sjoerd@debian.org>
+Uploaders: Andreas Henriksson <andreas@fatal.se>, Josselin Mouette <joss@debian.org>, Michael Biebl <biebl@debian.org>, Sjoerd Simons <sjoerd@debian.org>
 Build-Depends: cdbs (>= 0.4.90),
                debhelper (>= 9),
                gnome-pkg-tools (>= 0.10),
diff --git a/NEWS b/NEWS
index 38c4dd5..73d9cac 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,21 @@
+3.14.2
+======
+* Prevent crash applying monitor config for a closed lid [Rui; #739450]
+* Misc. fixes [Rui, Jonathon, Jasper; #738630]
+
+Contributors:
+  Jonathon Jongsma, Rui Matos, Jasper St. Pierre
+
+3.14.1.5
+========
+* Fix wayland hiDPI regressions [Adel; #739161]
+
+Contributors:
+  Adel Gadllah, Florian Müllner, Jasper St. Pierre
+
+Translations:
+  Dušan Kazik [sk]
+
 3.14.1
 ======
 * Fix move-titlebar-onscreen function [Florian; #736915]
diff --git a/configure.ac b/configure.ac
index df4dce1..0870afa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@ AC_PREREQ(2.62)
 
 m4_define([mutter_major_version], [3])
 m4_define([mutter_minor_version], [14])
-m4_define([mutter_micro_version], [1])
+m4_define([mutter_micro_version], [2])
 
 m4_define([mutter_version],
           [mutter_major_version.mutter_minor_version.mutter_micro_version])
@@ -78,7 +78,6 @@ MUTTER_PC_MODULES="
    gsettings-desktop-schemas >= 3.7.3
    $CLUTTER_PACKAGE >= 1.19.5
    cogl-1.0 >= 1.17.1
-   gbm >= 10.3
    upower-glib >= 0.99.0
    gnome-desktop-3.0
    xcomposite >= 0.2
@@ -201,7 +200,7 @@ AC_SUBST(XWAYLAND_PATH)
 
 PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
 
-PKG_CHECK_MODULES(MUTTER_NATIVE_BACKEND, [clutter-egl-1.0 libdrm libsystemd libinput], [have_native_backend=yes], [have_native_backend=no])
+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
diff --git a/po/sk.po b/po/sk.po
index 8d76c65..2998196 100644
diff --git a/src/backends/meta-cursor-private.h b/src/backends/meta-cursor-private.h
index 09ab992..4ea16e7 100644
--- a/src/backends/meta-cursor-private.h
+++ b/src/backends/meta-cursor-private.h
@@ -29,8 +29,11 @@
 
 typedef struct {
   CoglTexture2D *texture;
-  struct gbm_bo *bo;
   int hot_x, hot_y;
+
+#ifdef HAVE_NATIVE_BACKEND
+  struct gbm_bo *bo;
+#endif
 } MetaCursorImage;
 
 struct _MetaCursorReference {
@@ -44,8 +47,10 @@ CoglTexture *meta_cursor_reference_get_cogl_texture (MetaCursorReference *cursor
                                                      int                 *hot_x,
                                                      int                 *hot_y);
 
+#ifdef HAVE_NATIVE_BACKEND
 struct gbm_bo *meta_cursor_reference_get_gbm_bo (MetaCursorReference *cursor,
                                                  int                 *hot_x,
                                                  int                 *hot_y);
+#endif
 
 #endif /* META_CURSOR_PRIVATE_H */
diff --git a/src/backends/meta-cursor.c b/src/backends/meta-cursor.c
index 3695d81..22a8a76 100644
--- a/src/backends/meta-cursor.c
+++ b/src/backends/meta-cursor.c
@@ -56,8 +56,11 @@ static void
 meta_cursor_image_free (MetaCursorImage *image)
 {
   cogl_object_unref (image->texture);
+
+#ifdef HAVE_NATIVE_BACKEND
   if (image->bo)
     gbm_bo_destroy (image->bo);
+#endif
 }
 
 static void
@@ -139,10 +142,10 @@ load_cursor_on_client (MetaCursor cursor)
                                   meta_prefs_get_cursor_size ());
 }
 
+#ifdef HAVE_NATIVE_BACKEND
 static void
 get_hardware_cursor_size (uint64_t *cursor_width, uint64_t *cursor_height)
 {
-#ifdef HAVE_NATIVE_BACKEND
   MetaBackend *meta_backend = meta_get_backend ();
   MetaCursorRenderer *renderer = meta_backend_get_cursor_renderer (meta_backend);
 
@@ -151,11 +154,12 @@ get_hardware_cursor_size (uint64_t *cursor_width, uint64_t *cursor_height)
       meta_cursor_renderer_native_get_cursor_size (META_CURSOR_RENDERER_NATIVE (renderer), cursor_width, cursor_height);
       return;
     }
-#endif
 
   g_assert_not_reached ();
 }
+#endif
 
+#ifdef HAVE_NATIVE_BACKEND
 static void
 meta_cursor_image_load_gbm_buffer (struct gbm_device *gbm,
                                    MetaCursorImage   *image,
@@ -193,20 +197,21 @@ meta_cursor_image_load_gbm_buffer (struct gbm_device *gbm,
   else
     meta_warning ("HW cursor for format %d not supported\n", gbm_format);
 }
+#endif
 
+#ifdef HAVE_NATIVE_BACKEND
 static struct gbm_device *
 get_gbm_device (void)
 {
-#ifdef HAVE_NATIVE_BACKEND
   MetaBackend *meta_backend = meta_get_backend ();
   MetaCursorRenderer *renderer = meta_backend_get_cursor_renderer (meta_backend);
 
   if (META_IS_CURSOR_RENDERER_NATIVE (renderer))
     return meta_cursor_renderer_native_get_gbm_device (META_CURSOR_RENDERER_NATIVE (renderer));
-#endif
-
-  return NULL;
+  else
+    return NULL;
 }
+#endif
 
 static void
 meta_cursor_image_load_from_xcursor_image (MetaCursorImage   *image,
@@ -214,16 +219,13 @@ meta_cursor_image_load_from_xcursor_image (MetaCursorImage   *image,
 {
   uint width, height, rowstride;
   CoglPixelFormat cogl_format;
-  uint32_t gbm_format;
   ClutterBackend *clutter_backend;
   CoglContext *cogl_context;
-  struct gbm_device *gbm;
 
   width           = xc_image->width;
   height          = xc_image->height;
   rowstride       = width * 4;
 
-  gbm_format = GBM_FORMAT_ARGB8888;
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
   cogl_format = COGL_PIXEL_FORMAT_BGRA_8888;
 #else
@@ -242,13 +244,15 @@ meta_cursor_image_load_from_xcursor_image (MetaCursorImage   *image,
                                                   (uint8_t *) xc_image->pixels,
                                                   NULL);
 
-  gbm = get_gbm_device ();
+#ifdef HAVE_NATIVE_BACKEND
+  struct gbm_device *gbm = get_gbm_device ();
   if (gbm)
     meta_cursor_image_load_gbm_buffer (gbm,
                                        image,
                                        (uint8_t *) xc_image->pixels,
                                        width, height, rowstride,
-                                       gbm_format);
+                                       GBM_FORMAT_ARGB8888);
+#endif
 }
 
 MetaCursorReference *
@@ -277,14 +281,8 @@ meta_cursor_image_load_from_buffer (MetaCursorImage    *image,
                                     int                 hot_x,
                                     int                 hot_y)
 {
-  struct gbm_device *gbm = get_gbm_device ();
-
   ClutterBackend *backend;
   CoglContext *cogl_context;
-  struct wl_shm_buffer *shm_buffer;
-  uint32_t gbm_format;
-  uint64_t cursor_width, cursor_height;
-  uint width, height;
 
   image->hot_x = hot_x;
   image->hot_y = hot_y;
@@ -294,13 +292,19 @@ meta_cursor_image_load_from_buffer (MetaCursorImage    *image,
 
   image->texture = cogl_wayland_texture_2d_new_from_buffer (cogl_context, buffer, NULL);
 
-  width = cogl_texture_get_width (COGL_TEXTURE (image->texture));
-  height = cogl_texture_get_height (COGL_TEXTURE (image->texture));
-
-  shm_buffer = wl_shm_buffer_get (buffer);
-  if (shm_buffer)
+#ifdef HAVE_NATIVE_BACKEND
+  struct gbm_device *gbm = get_gbm_device ();
+  if (gbm)
     {
-      if (gbm)
+      uint32_t gbm_format;
+      uint64_t cursor_width, cursor_height;
+      uint width, height;
+
+      width = cogl_texture_get_width (COGL_TEXTURE (image->texture));
+      height = cogl_texture_get_height (COGL_TEXTURE (image->texture));
+
+      struct wl_shm_buffer *shm_buffer = wl_shm_buffer_get (buffer);
+      if (shm_buffer)
         {
           int rowstride = wl_shm_buffer_get_stride (shm_buffer);
 
@@ -332,10 +336,7 @@ meta_cursor_image_load_from_buffer (MetaCursorImage    *image,
                                              width, height, rowstride,
                                              gbm_format);
         }
-    }
-  else
-    {
-      if (gbm)
+      else
         {
           /* HW cursors have a predefined size (at least 64x64), which usually is bigger than cursor theme
              size, so themed cursors must be padded with transparent pixels to fill the
@@ -356,6 +357,7 @@ meta_cursor_image_load_from_buffer (MetaCursorImage    *image,
             meta_warning ("Importing HW cursor from wl_buffer failed\n");
         }
     }
+#endif
 }
 
 MetaCursorReference *
@@ -385,6 +387,7 @@ meta_cursor_reference_get_cogl_texture (MetaCursorReference *cursor,
   return COGL_TEXTURE (cursor->image.texture);
 }
 
+#ifdef HAVE_NATIVE_BACKEND
 struct gbm_bo *
 meta_cursor_reference_get_gbm_bo (MetaCursorReference *cursor,
                                   int                 *hot_x,
@@ -396,6 +399,7 @@ meta_cursor_reference_get_gbm_bo (MetaCursorReference *cursor,
     *hot_y = cursor->image.hot_y;
   return cursor->image.bo;
 }
+#endif
 
 MetaCursor
 meta_cursor_reference_get_meta_cursor (MetaCursorReference *cursor)
diff --git a/src/backends/meta-monitor-config.c b/src/backends/meta-monitor-config.c
index c97505d..399e9f0 100644
--- a/src/backends/meta-monitor-config.c
+++ b/src/backends/meta-monitor-config.c
@@ -797,27 +797,6 @@ make_config_key (MetaConfiguration *key,
 }
 
 gboolean
-meta_monitor_config_match_current (MetaMonitorConfig  *self,
-                                   MetaMonitorManager *manager)
-{
-  MetaOutput *outputs;
-  unsigned n_outputs;
-  MetaConfiguration key;
-  gboolean ok;
-
-  if (self->current == NULL)
-    return FALSE;
-
-  outputs = meta_monitor_manager_get_outputs (manager, &n_outputs);
-
-  make_config_key (&key, outputs, n_outputs, -1);
-  ok = config_equal (&key, self->current);
-
-  config_clear (&key);
-  return ok;
-}
-
-gboolean
 meta_monitor_manager_has_hotplug_mode_update (MetaMonitorManager *manager)
 {
   MetaOutput *outputs;
@@ -945,6 +924,19 @@ laptop_display_is_on (MetaConfiguration *config)
   return FALSE;
 }
 
+static gboolean
+multiple_outputs_are_enabled (MetaConfiguration *config)
+{
+  unsigned int i, enabled;
+
+  enabled = 0;
+  for (i = 0; i < config->n_outputs; i++)
+    if (config->outputs[i].enabled)
+      enabled++;
+
+  return enabled > 1;
+}
+
 static MetaConfiguration *
 make_laptop_lid_config (MetaConfiguration  *reference)
 {
@@ -954,7 +946,7 @@ make_laptop_lid_config (MetaConfiguration  *reference)
   int x_after, y_after;
   int x_offset, y_offset;
 
-  g_assert (reference->n_outputs > 1);
+  g_assert (multiple_outputs_are_enabled (reference));
 
   new = g_slice_new0 (MetaConfiguration);
   new->n_outputs = reference->n_outputs;
@@ -1025,7 +1017,7 @@ meta_monitor_config_apply_stored (MetaMonitorConfig  *self,
   if (stored)
     {
       if (self->lid_is_closed &&
-          stored->n_outputs > 1 &&
+          multiple_outputs_are_enabled (stored) &&
           laptop_display_is_on (stored))
         {
           if (apply_configuration (self, make_laptop_lid_config (stored),
@@ -1287,7 +1279,7 @@ meta_monitor_config_make_default (MetaMonitorConfig  *self,
   if (default_config != NULL)
     {
       if (self->lid_is_closed &&
-          default_config->n_outputs > 1 &&
+          multiple_outputs_are_enabled (default_config) &&
           laptop_display_is_on (default_config))
         {
           ok = apply_configuration (self, make_laptop_lid_config (default_config),
@@ -1378,7 +1370,7 @@ turn_off_laptop_display (MetaMonitorConfig  *self,
 {
   MetaConfiguration *new;
 
-  if (self->current->n_outputs == 1)
+  if (!multiple_outputs_are_enabled (self->current))
     return;
 
   new = make_laptop_lid_config (self->current);
diff --git a/src/backends/meta-monitor-config.h b/src/backends/meta-monitor-config.h
index 8401569..5599b6a 100644
--- a/src/backends/meta-monitor-config.h
+++ b/src/backends/meta-monitor-config.h
@@ -36,9 +36,6 @@ GType meta_monitor_config_get_type (void) G_GNUC_CONST;
 
 MetaMonitorConfig *meta_monitor_config_new (void);
 
-gboolean           meta_monitor_config_match_current (MetaMonitorConfig  *config,
-                                                      MetaMonitorManager *manager);
-
 gboolean           meta_monitor_config_apply_stored (MetaMonitorConfig  *config,
                                                      MetaMonitorManager *manager);
 
diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c
index 9555007..a8ac467 100644
--- a/src/backends/x11/meta-monitor-manager-xrandr.c
+++ b/src/backends/x11/meta-monitor-manager-xrandr.c
@@ -141,6 +141,30 @@ meta_monitor_transform_from_xrandr_all (Rotation rotation)
 }
 
 static gboolean
+output_get_property_exists (MetaMonitorManagerXrandr *manager_xrandr,
+                            MetaOutput *output, const char *propname)
+{
+  gboolean exists = FALSE;
+  Atom atom, actual_type;
+  int actual_format;
+  unsigned long nitems, bytes_after;
+  unsigned char *buffer;
+
+  atom = XInternAtom (manager_xrandr->xdisplay, propname, False);
+  XRRGetOutputProperty (manager_xrandr->xdisplay,
+                        (XID)output->winsys_id,
+                        atom,
+                        0, G_MAXLONG, False, False, AnyPropertyType,
+                        &actual_type, &actual_format,
+                        &nitems, &bytes_after, &buffer);
+
+  exists = (actual_type != None);
+
+  XFree (buffer);
+  return exists;
+}
+
+static gboolean
 output_get_boolean_property (MetaMonitorManagerXrandr *manager_xrandr,
                              MetaOutput *output, const char *propname)
 {
@@ -330,7 +354,7 @@ static gboolean
 output_get_hotplug_mode_update (MetaMonitorManagerXrandr *manager_xrandr,
                                 MetaOutput               *output)
 {
-  return output_get_boolean_property (manager_xrandr, output, "hotplug_mode_update");
+  return output_get_property_exists (manager_xrandr, output, "hotplug_mode_update");
 }
 
 static char *
@@ -1097,7 +1121,7 @@ meta_monitor_manager_xrandr_handle_xevent (MetaMonitorManagerXrandr *manager_xra
   /* If this is the X server telling us we set a new configuration,
    * we can simply short-cut to rebuilding our logical configuration.
    */
-  if (new_config || meta_monitor_config_match_current (manager->config, manager))
+  if (new_config)
     {
       meta_monitor_manager_xrandr_rebuild_derived (manager);
       goto out;
diff --git a/src/core/display.c b/src/core/display.c
index 4669593..185452b 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -1965,7 +1965,7 @@ meta_display_end_grab_op (MetaDisplay *display,
        * beginning of the grab_op.
        */
       if (!meta_prefs_get_raise_on_click () &&
-          display->grab_threshold_movement_reached)
+          !display->grab_threshold_movement_reached)
         meta_window_raise (display->grab_window);
 
       meta_window_grab_op_ended (grab_window, grab_op);
diff --git a/src/core/screen.c b/src/core/screen.c
index 86446e4..dbf3f60 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -3022,7 +3022,6 @@ check_fullscreen_func (gpointer data)
 {
   MetaScreen *screen = data;
   MetaWindow *window;
-  GSList *tmp;
   GSList *fullscreen_monitors = NULL;
   GSList *obscured_monitors = NULL;
   gboolean in_fullscreen_changed = FALSE;
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index c61598b..68fdb82 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -393,10 +393,7 @@ commit_pending_state (MetaWaylandSurface      *surface,
     }
 
   if (pending->scale > 0)
-    {
-      surface->scale = pending->scale;
-      meta_surface_actor_wayland_scale_texture (META_SURFACE_ACTOR_WAYLAND (surface->surface_actor));
-    }
+    surface->scale = pending->scale;
 
   if (!cairo_region_is_empty (pending->damage))
     surface_process_damage (surface, pending->damage);
@@ -411,10 +408,14 @@ commit_pending_state (MetaWaylandSurface      *surface,
     }
   if (pending->input_region)
     {
-      pending->input_region = scale_region (pending->input_region, surface->scale);
+      pending->input_region = scale_region (pending->input_region,
+                                            meta_surface_actor_wayland_get_scale (META_SURFACE_ACTOR_WAYLAND (surface->surface_actor)));
       meta_surface_actor_set_input_region (surface->surface_actor, pending->input_region);
     }
 
+  /* scale surface texture */
+  meta_surface_actor_wayland_scale_texture (META_SURFACE_ACTOR_WAYLAND (surface->surface_actor));
+
   /* wl_surface.frame */
   wl_list_insert_list (&compositor->frame_callbacks, &pending->frame_callback_list);
   wl_list_init (&pending->frame_callback_list);

--- End Message ---
--- Begin Message ---
On Sun, 2014-11-30 at 15:30 +0100, Josselin Mouette wrote:
> mutter (3.14.2-1) unstable; urgency=medium
> 
>   * New upstream bugfix release.
>   * 10_window-actor_unredirect.patch: patch from upstream git. Fix crash 
>     when closing a window.
>   * 11_black_background.patch: patch from upstream git. Don’t set a 
>     black background when switching from the display manager.

Unblocked.

Regards,

Adam

--- End Message ---

Reply to: