Hello community,

here is the log from the commit of package mutter for openSUSE:Factory checked 
in at 2018-05-22 16:59:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mutter (Old)
 and      /work/SRC/openSUSE:Factory/.mutter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mutter"

Tue May 22 16:59:37 2018 rev:127 rq:606938 version:3.28.2+20180507.41303bc01

Changes:
--------
--- /work/SRC/openSUSE:Factory/mutter/mutter.changes    2018-04-22 
14:37:15.366142759 +0200
+++ /work/SRC/openSUSE:Factory/.mutter.new/mutter.changes       2018-05-22 
16:59:39.217265670 +0200
@@ -1,0 +2,32 @@
+Wed May 09 16:00:40 UTC 2018 - opensuse-packag...@opensuse.org
+
+- Update to version 3.28.2+20180507.41303bc01:
+  + Bump version to 3.28.2
+  + build: Adjust to filename changes
+  + build: Introspect some more types
+  + window-group: Remove undefined function declaration
+  + clutter: Don't reference invalid pc in gir
+  + screen-cast: Handle PipeWire errors more gracefully
+  + wayland/xdg-foreign: Fix child surface validation check
+  + wayland/xdg-foreign: Send immediate destroy event to correct
+    resource
+  + build: Don't fail immediately when logind is missing
+  + wayland: Check if state and size changed before calling
+    move_resize()
+  + wayland: Add function to query if window needs move or resize
+  + window: Let implementations finish state changes
+  + wayland: avoid a crash in is_effectively_synchronized()
+  + native: Restore previous EGL state after blitting onto
+    secondary GPU
+  + cogl: Do not unref a NULL object
+  + monitor-manager: Find active monitor when deriving global scale
+  + wayland: Let IM events go through
+  + backend: Don't center the pointers on monitor changes
+  + backends: Don't center the pointer on initialization
+  + xwayland: Don't abort if Xwayland crashes
+  + xwayland: use g_autoptr for GError in xserver_died
+  + theme, frames: Use surface device scale instead of cairo_scale
+  + wayland: Do not reset frame list when merging pending state
+  + clutter: Set slave=master in IM forwarded key events
+
+-------------------------------------------------------------------

Old:
----
  mutter-3.28.1+20180416.d3d5eb8e1.tar.xz

New:
----
  mutter-3.28.2+20180507.41303bc01.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mutter.spec ++++++
--- /var/tmp/diff_new_pack.u4woPj/_old  2018-05-22 16:59:39.889241219 +0200
+++ /var/tmp/diff_new_pack.u4woPj/_new  2018-05-22 16:59:39.889241219 +0200
@@ -19,7 +19,7 @@
 %define mutter_major 2
 %define mutter_minor 0
 Name:           mutter
-Version:        3.28.1+20180416.d3d5eb8e1
+Version:        3.28.2+20180507.41303bc01
 Release:        0
 Summary:        Window and compositing manager based on Clutter
 License:        GPL-2.0-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.u4woPj/_old  2018-05-22 16:59:39.921240055 +0200
+++ /var/tmp/diff_new_pack.u4woPj/_new  2018-05-22 16:59:39.921240055 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
     <param name="scm">git</param>
     <param name="revision">gnome-3-28</param>
-    <param name="versionformat">3.28.1+%cd.%h</param>
+    <param name="versionformat">3.28.2+%cd.%h</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service mode="disabled" name="recompress">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.u4woPj/_old  2018-05-22 16:59:39.941239327 +0200
+++ /var/tmp/diff_new_pack.u4woPj/_new  2018-05-22 16:59:39.941239327 +0200
@@ -1,4 +1,4 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
-              <param 
name="changesrevision">d3d5eb8e1b3b07a38860a9dbe58c601392e0ad75</param></service></servicedata>
\ No newline at end of file
+              <param 
name="changesrevision">41303bc01be873e684f11a3407aa556af2922426</param></service></servicedata>
\ No newline at end of file

++++++ mutter-3.28.1+20180416.d3d5eb8e1.tar.xz -> 
mutter-3.28.2+20180507.41303bc01.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.28.1+20180416.d3d5eb8e1/NEWS 
new/mutter-3.28.2+20180507.41303bc01/NEWS
--- old/mutter-3.28.1+20180416.d3d5eb8e1/NEWS   2018-04-16 16:03:56.000000000 
+0200
+++ new/mutter-3.28.2+20180507.41303bc01/NEWS   2018-05-07 22:29:42.000000000 
+0200
@@ -1,3 +1,15 @@
+3.28.2
+======
+* Take inhibitors into account for monitoring idle [Bastien; #705942]
+* Fix window animations on wayland [Georges; #780292]
+* Misc. bug fixes [Mario, Jonas, Olivier, Florian; gnome-shell#157, #130,
+  #21, #124, !96, #138, !102, #781471]
+
+Contributors:
+  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Florian Müllner,
+  Georges Basile Stavracas Neto, Bastien Nocera, Mario Sanchez Prada,
+  Ray Strode, Marco Trevisan (Treviño)
+
 3.28.1
 ======
 * Fix various input-method regressions [Carlos; #65, #74, #66]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/clutter/clutter/Makefile.am 
new/mutter-3.28.2+20180507.41303bc01/clutter/clutter/Makefile.am
--- old/mutter-3.28.1+20180416.d3d5eb8e1/clutter/clutter/Makefile.am    
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/clutter/clutter/Makefile.am    
2018-05-07 22:29:42.000000000 +0200
@@ -692,7 +692,7 @@
 Cally_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \
        --warn-all \
        --c-include='cally/cally.h' \
-       --pkg-export=mutter-cally-@LIBMUTTER_API_VERSION@ \
+       --pkg-export=mutter-clutter-@LIBMUTTER_API_VERSION@ \
        
--include-uninstalled=$(top_builddir)/clutter/Clutter-@LIBMUTTER_API_VERSION@.gir
 
 INTROSPECTION_GIRS += Cally-@LIBMUTTER_API_VERSION@.gir
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/clutter/clutter/clutter-input-method.c 
new/mutter-3.28.2+20180507.41303bc01/clutter/clutter/clutter-input-method.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/clutter/clutter/clutter-input-method.c 
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/clutter/clutter/clutter-input-method.c 
2018-05-07 22:29:42.000000000 +0200
@@ -353,6 +353,7 @@
       copy = clutter_event_copy (event);
       clutter_event_set_flags (copy, clutter_event_get_flags (event) |
                                CLUTTER_EVENT_FLAG_INPUT_METHOD);
+      clutter_event_set_source_device (copy, clutter_event_get_device (copy));
       clutter_event_put (copy);
       clutter_event_free (copy);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/cogl/cogl/Makefile.am 
new/mutter-3.28.2+20180507.41303bc01/cogl/cogl/Makefile.am
--- old/mutter-3.28.1+20180416.d3d5eb8e1/cogl/cogl/Makefile.am  2018-04-16 
16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/cogl/cogl/Makefile.am  2018-05-07 
22:29:42.000000000 +0200
@@ -452,7 +452,7 @@
        -avoid-version \
        -export-dynamic \
        -rpath $(mutterlibdir) \
-       -export-symbols-regex 
"^(cogl|_cogl_debug_flags|_cogl_atlas_new|_cogl_atlas_add_reorganize_callback|_cogl_atlas_reserve_space|_cogl_callback|_cogl_util_get_eye_planes_for_screen_poly|_cogl_atlas_texture_remove_reorganize_callback|_cogl_atlas_texture_add_reorganize_callback|_cogl_texture_get_format|_cogl_texture_foreach_sub_texture_in_region|_cogl_texture_set_region|_cogl_profile_trace_message|_cogl_context_get_default|_cogl_framebuffer_get_stencil_bits|_cogl_clip_stack_push_rectangle|_cogl_framebuffer_get_modelview_stack|_cogl_object_default_unref|_cogl_pipeline_foreach_layer_internal|_cogl_clip_stack_push_primitive|_cogl_buffer_unmap_for_fill_or_fallback|_cogl_framebuffer_draw_primitive|_cogl_debug_instances|_cogl_framebuffer_get_projection_stack|_cogl_pipeline_layer_get_texture|_cogl_buffer_map_for_fill_or_fallback|_cogl_texture_can_hardware_repeat|_cogl_pipeline_prune_to_n_layers|_cogl_primitive_draw|test_|unit_test_|_cogl_winsys_glx_get_vtable|_cogl_winsys_egl_xlib_get_vtable|_cogl_winsys_egl_get_vtable|_cogl_closure_disconnect|_cogl_onscreen_notify_complete|_cogl_onscreen_notify_frame_sync|_cogl_winsys_egl_renderer_connect_common|_cogl_winsys_error_quark|_cogl_set_error|_cogl_poll_renderer_add_fd|_cogl_poll_renderer_add_idle|_cogl_framebuffer_winsys_update_size|_cogl_winsys_egl_make_current|_cogl_pixel_format_get_bytes_per_pixel).*"
+       -export-symbols-regex 
"^(cogl|_cogl_debug_flags|_cogl_atlas_new|_cogl_atlas_add_reorganize_callback|_cogl_atlas_reserve_space|_cogl_callback|_cogl_util_get_eye_planes_for_screen_poly|_cogl_atlas_texture_remove_reorganize_callback|_cogl_atlas_texture_add_reorganize_callback|_cogl_texture_get_format|_cogl_texture_foreach_sub_texture_in_region|_cogl_texture_set_region|_cogl_profile_trace_message|_cogl_context_get_default|_cogl_framebuffer_get_stencil_bits|_cogl_clip_stack_push_rectangle|_cogl_framebuffer_get_modelview_stack|_cogl_object_default_unref|_cogl_pipeline_foreach_layer_internal|_cogl_clip_stack_push_primitive|_cogl_buffer_unmap_for_fill_or_fallback|_cogl_framebuffer_draw_primitive|_cogl_debug_instances|_cogl_framebuffer_get_projection_stack|_cogl_pipeline_layer_get_texture|_cogl_buffer_map_for_fill_or_fallback|_cogl_texture_can_hardware_repeat|_cogl_pipeline_prune_to_n_layers|_cogl_primitive_draw|test_|unit_test_|_cogl_winsys_glx_get_vtable|_cogl_winsys_egl_xlib_get_vtable|_cogl_winsys_egl_get_vtable|_cogl_closure_disconnect|_cogl_onscreen_notify_complete|_cogl_onscreen_notify_frame_sync|_cogl_winsys_egl_renderer_connect_common|_cogl_winsys_error_quark|_cogl_set_error|_cogl_poll_renderer_add_fd|_cogl_poll_renderer_add_idle|_cogl_framebuffer_winsys_update_size|_cogl_winsys_egl_make_current|_cogl_winsys_egl_ensure_current|_cogl_pixel_format_get_bytes_per_pixel).*"
 
 libmutter_cogl_@LIBMUTTER_API_VERSION@_la_SOURCES = $(cogl_sources_c)
 nodist_libmutter_cogl_@LIBMUTTER_API_VERSION@_la_SOURCES = $(BUILT_SOURCES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/cogl/cogl/cogl-object.c 
new/mutter-3.28.2+20180507.41303bc01/cogl/cogl/cogl-object.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/cogl/cogl/cogl-object.c        
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/cogl/cogl/cogl-object.c        
2018-05-07 22:29:42.000000000 +0200
@@ -109,7 +109,11 @@
 void
 cogl_object_unref (void *obj)
 {
-  void (* unref_func) (void *) = ((CoglObject *) obj)->klass->virt_unref;
+  void (* unref_func) (void *);
+
+  _COGL_RETURN_IF_FAIL (obj != NULL);
+
+  unref_func = ((CoglObject *) obj)->klass->virt_unref;
   unref_func (obj);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/cogl/cogl/winsys/cogl-winsys-egl-private.h 
new/mutter-3.28.2+20180507.41303bc01/cogl/cogl/winsys/cogl-winsys-egl-private.h
--- 
old/mutter-3.28.1+20180416.d3d5eb8e1/cogl/cogl/winsys/cogl-winsys-egl-private.h 
    2018-04-16 16:03:56.000000000 +0200
+++ 
new/mutter-3.28.2+20180507.41303bc01/cogl/cogl/winsys/cogl-winsys-egl-private.h 
    2018-05-07 22:29:42.000000000 +0200
@@ -181,6 +181,9 @@
                                EGLSurface read,
                                EGLContext context);
 
+EGLBoolean
+_cogl_winsys_egl_ensure_current (CoglDisplay *display);
+
 #ifdef EGL_KHR_image_base
 EGLImageKHR
 _cogl_egl_create_image (CoglContext *ctx,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/cogl/cogl/winsys/cogl-winsys-egl.c 
new/mutter-3.28.2+20180507.41303bc01/cogl/cogl/winsys/cogl-winsys-egl.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/cogl/cogl/winsys/cogl-winsys-egl.c     
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/cogl/cogl/winsys/cogl-winsys-egl.c     
2018-05-07 22:29:42.000000000 +0200
@@ -309,6 +309,18 @@
   return ret;
 }
 
+EGLBoolean
+_cogl_winsys_egl_ensure_current (CoglDisplay *display)
+{
+  CoglDisplayEGL *egl_display = display->winsys;
+  CoglRendererEGL *egl_renderer = display->renderer->winsys;
+
+  return eglMakeCurrent (egl_renderer->edpy,
+                         egl_display->current_draw_surface,
+                         egl_display->current_read_surface,
+                         egl_display->current_context);
+}
+
 static void
 cleanup_context (CoglDisplay *display)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.28.1+20180416.d3d5eb8e1/configure.ac 
new/mutter-3.28.2+20180507.41303bc01/configure.ac
--- old/mutter-3.28.1+20180416.d3d5eb8e1/configure.ac   2018-04-16 
16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/configure.ac   2018-05-07 
22:29:42.000000000 +0200
@@ -2,7 +2,7 @@
 
 m4_define([mutter_major_version], [3])
 m4_define([mutter_minor_version], [28])
-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])
@@ -270,13 +270,10 @@
 
 PKG_CHECK_MODULES(SYSTEMD, [libsystemd], [have_systemd=yes], [have_systemd=no])
 
-if test x$have_systemd = xyes; then
+if test x$have_systemd = xyes -o -z "$logind_provider"; then
      logind_provider="libsystemd"
 fi
 
-AS_IF([test -z "$logind_provider"],
-  AC_MSG_ERROR([Could not find either systemd or elogind as logind provider])])
-
 MUTTER_NATIVE_BACKEND_MODULES="libdrm $logind_provider libinput >= 1.4 
gudev-1.0 gbm >= 10.3"
 
 AC_ARG_ENABLE(native-backend,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.28.1+20180416.d3d5eb8e1/src/Makefile.am 
new/mutter-3.28.2+20180507.41303bc01/src/Makefile.am
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/Makefile.am        2018-04-16 
16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/Makefile.am        2018-05-07 
22:29:42.000000000 +0200
@@ -153,7 +153,7 @@
        backends/meta-pointer-constraint.h      \
        backends/meta-settings.c                \
        backends/meta-settings-private.h        \
-       backends/meta-stage.h                   \
+       backends/meta-stage-private.h           \
        backends/meta-stage.c                   \
        backends/meta-renderer.c                \
        backends/meta-renderer.h                \
@@ -246,7 +246,7 @@
        compositor/meta-window-actor.c          \
        compositor/meta-window-actor-private.h  \
        compositor/meta-window-group.c          \
-       compositor/meta-window-group.h          \
+       compositor/meta-window-group-private.h  \
        compositor/meta-window-shape.c          \
        compositor/region-utils.c               \
        compositor/region-utils.h               \
@@ -543,7 +543,9 @@
        meta/meta-settings.h                    \
        meta/meta-shaped-texture.h              \
        meta/meta-shadow-factory.h              \
+       meta/meta-stage.h                       \
        meta/meta-window-actor.h                \
+       meta/meta-window-group.h                \
        meta/meta-window-shape.h                \
        meta/prefs.h                            \
        meta/screen.h                           \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-backend.c 
new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-backend.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-backend.c    
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-backend.c    
2018-05-07 22:29:42.000000000 +0200
@@ -34,7 +34,7 @@
 #include "meta-input-settings-private.h"
 #include "backends/x11/meta-backend-x11.h"
 #include "meta-cursor-tracker-private.h"
-#include "meta-stage.h"
+#include "meta-stage-private.h"
 
 #ifdef HAVE_REMOTE_DESKTOP
 #include "backends/meta-dbus-session-watcher.h"
@@ -170,7 +170,7 @@
 }
 
 static void
-center_pointer (MetaBackend *backend)
+reset_pointer_position (MetaBackend *backend)
 {
   MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
   MetaMonitorManager *monitor_manager = priv->monitor_manager;
@@ -179,9 +179,11 @@
   primary =
     meta_monitor_manager_get_primary_logical_monitor (monitor_manager);
 
+  /* Move the pointer out of the way to avoid hovering over reactive
+   * elements (e.g. users list at login) causing undesired behaviour. */
   meta_backend_warp_pointer (backend,
-                             primary->rect.x + primary->rect.width / 2,
-                             primary->rect.y + primary->rect.height / 2);
+                             primary->rect.x + primary->rect.width * 0.9,
+                             primary->rect.y + primary->rect.height * 0.9);
 }
 
 void
@@ -204,7 +206,7 @@
            !priv->is_pointer_position_initialized) &&
           !meta_monitor_manager_is_headless (monitor_manager))
         {
-          center_pointer (backend);
+          reset_pointer_position (backend);
           priv->is_pointer_position_initialized = TRUE;
         }
     }
@@ -479,7 +481,7 @@
 
   if (!meta_monitor_manager_is_headless (priv->monitor_manager))
     {
-      center_pointer (backend);
+      reset_pointer_position (backend);
       priv->is_pointer_position_initialized = TRUE;
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-cursor-renderer.c 
new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-cursor-renderer.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-cursor-renderer.c    
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-cursor-renderer.c    
2018-05-07 22:29:42.000000000 +0200
@@ -33,7 +33,7 @@
 #include <cogl/cogl.h>
 #include <clutter/clutter.h>
 
-#include "meta-stage.h"
+#include "meta-stage-private.h"
 
 struct _MetaCursorRendererPrivate
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-monitor-manager.c 
new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-monitor-manager.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-monitor-manager.c    
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-monitor-manager.c    
2018-05-07 22:29:42.000000000 +0200
@@ -89,6 +89,9 @@
 meta_monitor_manager_is_config_complete (MetaMonitorManager *manager,
                                          MetaMonitorsConfig *config);
 
+static MetaMonitor *
+meta_monitor_manager_get_active_monitor (MetaMonitorManager *manager);
+
 MetaBackend *
 meta_monitor_manager_get_backend (MetaMonitorManager *manager)
 {
@@ -198,13 +201,17 @@
 static float
 derive_calculated_global_scale (MetaMonitorManager *manager)
 {
-  MetaMonitor *primary_monitor;
+  MetaMonitor *monitor = NULL;
+
+  monitor = meta_monitor_manager_get_primary_monitor (manager);
 
-  primary_monitor = meta_monitor_manager_get_primary_monitor (manager);
-  if (!primary_monitor)
+  if (!monitor || !meta_monitor_is_active (monitor))
+    monitor = meta_monitor_manager_get_active_monitor (manager);
+
+  if (!monitor)
     return 1.0;
 
-  return calculate_monitor_scale (manager, primary_monitor);
+  return calculate_monitor_scale (manager, monitor);
 }
 
 static float
@@ -2378,6 +2385,12 @@
   return find_monitor (manager, meta_monitor_is_laptop_panel);
 }
 
+static MetaMonitor *
+meta_monitor_manager_get_active_monitor (MetaMonitorManager *manager)
+{
+  return find_monitor (manager, meta_monitor_is_active);
+}
+
 MetaMonitor *
 meta_monitor_manager_get_monitor_from_connector (MetaMonitorManager *manager,
                                                  const char         *connector)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-screen-cast-stream-src.c 
new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-screen-cast-stream-src.c
--- 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-screen-cast-stream-src.c 
    2018-04-16 16:03:56.000000000 +0200
+++ 
new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-screen-cast-stream-src.c 
    2018-05-07 22:29:42.000000000 +0200
@@ -153,6 +153,11 @@
     return;
 
   buffer = pw_stream_peek_buffer (priv->pipewire_stream, buffer_id);
+  if (!buffer)
+    {
+      g_warning ("Failed to peek at PipeWire buffer");
+      return;
+    }
 
   if (buffer->datas[0].type == priv->pipewire_type->data.MemFd)
     {
@@ -327,10 +332,18 @@
   struct spa_fraction max_framerate;
   struct spa_fraction min_framerate;
   const struct spa_pod *params[1];
+  int result;
 
   pipewire_stream = pw_stream_new (priv->pipewire_remote,
                                    "meta-screen-cast-src",
                                    NULL);
+  if (!pipewire_stream)
+    {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                   "Failed to create PipeWire stream: %s",
+                   strerror (errno));
+      return NULL;
+    }
 
   meta_screen_cast_stream_src_get_specs (src, &width, &height, &frame_rate);
   frame_rate_fraction = meta_fraction_from_double (frame_rate);
@@ -356,14 +369,15 @@
                           &stream_events,
                           src);
 
-  if (pw_stream_connect (pipewire_stream,
-                         PW_DIRECTION_OUTPUT,
-                         NULL,
-                         PW_STREAM_FLAG_NONE,
-                         params, G_N_ELEMENTS (params)) != 0)
+  result = pw_stream_connect (pipewire_stream,
+                              PW_DIRECTION_OUTPUT,
+                              NULL,
+                              PW_STREAM_FLAG_NONE,
+                              params, G_N_ELEMENTS (params));
+  if (result != 0)
     {
       g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                   "Could not connect");
+                   "Could not connect: %s", spa_strerror (result));
       return NULL;
     }
 
@@ -466,6 +480,12 @@
     (MetaPipeWireSource *) g_source_new (&pipewire_source_funcs,
                                          sizeof (MetaPipeWireSource));
   pipewire_source->pipewire_loop = pw_loop_new (NULL);
+  if (!pipewire_source->pipewire_loop)
+    {
+      g_source_destroy ((GSource *) pipewire_source);
+      return NULL;
+    }
+
   g_source_add_unix_fd (&pipewire_source->base,
                         pw_loop_get_fd (pipewire_source->pipewire_loop),
                         G_IO_IN | G_IO_ERR);
@@ -491,6 +511,13 @@
     meta_screen_cast_stream_src_get_instance_private (src);
 
   priv->pipewire_source = create_pipewire_source ();
+  if (!priv->pipewire_source)
+    {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                   "Failed to create PipeWire source");
+      return FALSE;
+    }
+
   priv->pipewire_core = pw_core_new (priv->pipewire_source->pipewire_loop,
                                      NULL);
   if (!priv->pipewire_core)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-stage-private.h 
new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-stage-private.h
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-stage-private.h      
1970-01-01 01:00:00.000000000 +0100
+++ new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-stage-private.h      
2018-05-07 22:29:42.000000000 +0200
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2012 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_STAGE_PRIVATE_H
+#define META_STAGE_PRIVATE_H
+
+#include <meta/meta-stage.h>
+
+#include "meta-cursor.h"
+#include <meta/boxes.h>
+
+G_BEGIN_DECLS
+
+typedef struct _MetaOverlay    MetaOverlay;
+
+struct _MetaStage
+{
+  ClutterStage parent;
+};
+
+ClutterActor     *meta_stage_new                     (void);
+
+MetaOverlay      *meta_stage_create_cursor_overlay   (MetaStage   *stage);
+void              meta_stage_remove_cursor_overlay   (MetaStage   *stage,
+                                                     MetaOverlay *overlay);
+
+void              meta_stage_update_cursor_overlay   (MetaStage   *stage,
+                                                      MetaOverlay *overlay,
+                                                      CoglTexture *texture,
+                                                      ClutterRect *rect);
+
+void meta_stage_set_active (MetaStage *stage,
+                            gboolean   is_active);
+
+void meta_stage_update_view_layout (MetaStage *stage);
+
+G_END_DECLS
+
+#endif /* META_STAGE_PRIVATE_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-stage.c 
new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-stage.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-stage.c      
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-stage.c      
2018-05-07 22:29:42.000000000 +0200
@@ -22,7 +22,7 @@
 
 #include <config.h>
 
-#include "meta-stage.h"
+#include "meta-stage-private.h"
 
 #include <meta/meta-backend.h>
 #include <meta/meta-monitor-manager.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-stage.h 
new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-stage.h
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/meta-stage.h      
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/backends/meta-stage.h      
1970-01-01 01:00:00.000000000 +0100
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2012 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_STAGE_H
-#define META_STAGE_H
-
-#include <clutter/clutter.h>
-
-#include "meta-cursor.h"
-#include <meta/boxes.h>
-
-G_BEGIN_DECLS
-
-#define META_TYPE_STAGE            (meta_stage_get_type ())
-#define META_STAGE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
META_TYPE_STAGE, MetaStage))
-#define META_STAGE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  
META_TYPE_STAGE, MetaStageClass))
-#define META_IS_STAGE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
META_TYPE_STAGE))
-#define META_IS_STAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  
META_TYPE_STAGE))
-#define META_STAGE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  
META_TYPE_STAGE, MetaStageClass))
-
-typedef struct _MetaStage      MetaStage;
-typedef struct _MetaStageClass MetaStageClass;
-typedef struct _MetaOverlay    MetaOverlay;
-
-struct _MetaStageClass
-{
-  ClutterStageClass parent_class;
-};
-
-struct _MetaStage
-{
-  ClutterStage parent;
-};
-
-GType             meta_stage_get_type                (void) G_GNUC_CONST;
-
-ClutterActor     *meta_stage_new                     (void);
-
-MetaOverlay      *meta_stage_create_cursor_overlay   (MetaStage   *stage);
-void              meta_stage_remove_cursor_overlay   (MetaStage   *stage,
-                                                     MetaOverlay *overlay);
-
-void              meta_stage_update_cursor_overlay   (MetaStage   *stage,
-                                                      MetaOverlay *overlay,
-                                                      CoglTexture *texture,
-                                                      ClutterRect *rect);
-
-void meta_stage_set_active (MetaStage *stage,
-                            gboolean   is_active);
-
-void meta_stage_update_view_layout (MetaStage *stage);
-
-G_END_DECLS
-
-#endif /* META_STAGE_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/native/meta-backend-native.c 
new/mutter-3.28.2+20180507.41303bc01/src/backends/native/meta-backend-native.c
--- 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/native/meta-backend-native.c  
    2018-04-16 16:03:56.000000000 +0200
+++ 
new/mutter-3.28.2+20180507.41303bc01/src/backends/native/meta-backend-native.c  
    2018-05-07 22:29:42.000000000 +0200
@@ -43,7 +43,7 @@
 #include "backends/meta-logical-monitor.h"
 #include "backends/meta-monitor-manager-private.h"
 #include "backends/meta-pointer-constraint.h"
-#include "backends/meta-stage.h"
+#include "backends/meta-stage-private.h"
 #include "backends/native/meta-clutter-backend-native.h"
 #include "backends/native/meta-input-settings-native.h"
 #include "backends/native/meta-renderer-native.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/native/meta-renderer-native.c 
new/mutter-3.28.2+20180507.41303bc01/src/backends/native/meta-renderer-native.c
--- 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/native/meta-renderer-native.c 
    2018-04-16 16:03:56.000000000 +0200
+++ 
new/mutter-3.28.2+20180507.41303bc01/src/backends/native/meta-renderer-native.c 
    2018-05-07 22:29:42.000000000 +0200
@@ -1911,12 +1911,7 @@
    * context.
    */
   if (egl_context_changed)
-    {
-      _cogl_winsys_egl_make_current (cogl_display,
-                                     EGL_NO_SURFACE,
-                                     EGL_NO_SURFACE,
-                                     EGL_NO_CONTEXT);
-    }
+    _cogl_winsys_egl_ensure_current (cogl_display);
 }
 
 static gboolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/x11/meta-backend-x11.c 
new/mutter-3.28.2+20180507.41303bc01/src/backends/x11/meta-backend-x11.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/x11/meta-backend-x11.c    
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/backends/x11/meta-backend-x11.c    
2018-05-07 22:29:42.000000000 +0200
@@ -37,7 +37,7 @@
 #include <X11/Xlib-xcb.h>
 #include <xkbcommon/xkbcommon-x11.h>
 
-#include "backends/meta-stage.h"
+#include "backends/meta-stage-private.h"
 #include "backends/x11/meta-clutter-backend-x11.h"
 #include "backends/x11/meta-renderer-x11.h"
 #include "meta/meta-cursor-tracker.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/x11/meta-cursor-renderer-x11.c
 
new/mutter-3.28.2+20180507.41303bc01/src/backends/x11/meta-cursor-renderer-x11.c
--- 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/backends/x11/meta-cursor-renderer-x11.c
    2018-04-16 16:03:56.000000000 +0200
+++ 
new/mutter-3.28.2+20180507.41303bc01/src/backends/x11/meta-cursor-renderer-x11.c
    2018-05-07 22:29:42.000000000 +0200
@@ -29,7 +29,7 @@
 #include <X11/extensions/Xfixes.h>
 
 #include "meta-backend-x11.h"
-#include "meta-stage.h"
+#include "meta-stage-private.h"
 
 struct _MetaCursorRendererX11Private
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/compositor/compositor.c 
new/mutter-3.28.2+20180507.41303bc01/src/compositor/compositor.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/compositor/compositor.c    
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/compositor/compositor.c    
2018-05-07 22:29:42.000000000 +0200
@@ -67,7 +67,7 @@
 #include <meta/meta-background-group.h>
 #include <meta/meta-shadow-factory.h>
 #include "meta-window-actor-private.h"
-#include "meta-window-group.h"
+#include "meta-window-group-private.h"
 #include "window-private.h" /* to check window->hidden */
 #include "display-private.h" /* for meta_display_lookup_x_window() and 
meta_display_cancel_touch() */
 #include "util-private.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/compositor/meta-window-group-private.h 
new/mutter-3.28.2+20180507.41303bc01/src/compositor/meta-window-group-private.h
--- 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/compositor/meta-window-group-private.h 
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/mutter-3.28.2+20180507.41303bc01/src/compositor/meta-window-group-private.h 
    2018-05-07 22:29:42.000000000 +0200
@@ -0,0 +1,24 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+#ifndef META_WINDOW_GROUP_PRIVATE_H
+#define META_WINDOW_GROUP_PRIVATE_H
+
+#include <meta/meta-window-group.h>
+
+#include <meta/screen.h>
+
+/**
+ * MetaWindowGroup:
+ *
+ * This class is a subclass of ClutterActor with special handling for
+ * #MetaCullable when painting children. It uses code similar to
+ * meta_cullable_cull_out_children(), but also has additional special
+ * cases for the undirected window, and similar.
+ */
+
+
+typedef struct _MetaWindowGroupPrivate MetaWindowGroupPrivate;
+
+ClutterActor *meta_window_group_new (MetaScreen *screen);
+
+#endif /* META_WINDOW_GROUP_PRIVATE_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/compositor/meta-window-group.c 
new/mutter-3.28.2+20180507.41303bc01/src/compositor/meta-window-group.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/compositor/meta-window-group.c     
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/compositor/meta-window-group.c     
2018-05-07 22:29:42.000000000 +0200
@@ -10,7 +10,7 @@
 #include "clutter-utils.h"
 #include "compositor-private.h"
 #include "meta-window-actor-private.h"
-#include "meta-window-group.h"
+#include "meta-window-group-private.h"
 #include "window-private.h"
 #include "meta-cullable.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/compositor/meta-window-group.h 
new/mutter-3.28.2+20180507.41303bc01/src/compositor/meta-window-group.h
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/compositor/meta-window-group.h     
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/compositor/meta-window-group.h     
1970-01-01 01:00:00.000000000 +0100
@@ -1,37 +0,0 @@
-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
-
-#ifndef META_WINDOW_GROUP_H
-#define META_WINDOW_GROUP_H
-
-#include <clutter/clutter.h>
-
-#include <meta/screen.h>
-
-/**
- * MetaWindowGroup:
- *
- * This class is a subclass of ClutterActor with special handling for
- * #MetaCullable when painting children. It uses code similar to
- * meta_cullable_cull_out_children(), but also has additional special
- * cases for the undirected window, and similar.
- */
-
-#define META_TYPE_WINDOW_GROUP            (meta_window_group_get_type ())
-#define META_WINDOW_GROUP(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
META_TYPE_WINDOW_GROUP, MetaWindowGroup))
-#define META_WINDOW_GROUP_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), 
META_TYPE_WINDOW_GROUP, MetaWindowGroupClass))
-#define META_IS_WINDOW_GROUP(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
META_TYPE_WINDOW_GROUP))
-#define META_IS_WINDOW_GROUP_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), 
META_TYPE_WINDOW_GROUP))
-#define META_WINDOW_GROUP_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), 
META_TYPE_WINDOW_GROUP, MetaWindowGroupClass))
-
-typedef struct _MetaWindowGroup        MetaWindowGroup;
-typedef struct _MetaWindowGroupClass   MetaWindowGroupClass;
-typedef struct _MetaWindowGroupPrivate MetaWindowGroupPrivate;
-
-GType meta_window_group_get_type (void);
-
-ClutterActor *meta_window_group_new (MetaScreen *screen);
-
-gboolean meta_window_group_actor_is_untransformed (ClutterActor *actor,
-                                                   int          *x_origin,
-                                                   int          *y_origin);
-#endif /* META_WINDOW_GROUP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.28.1+20180416.d3d5eb8e1/src/core/display.c 
new/mutter-3.28.2+20180507.41303bc01/src/core/display.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/core/display.c     2018-04-16 
16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/core/display.c     2018-05-07 
22:29:42.000000000 +0200
@@ -53,7 +53,7 @@
 #include "backends/meta-logical-monitor.h"
 #include "backends/native/meta-backend-native.h"
 #include "backends/x11/meta-backend-x11.h"
-#include "backends/meta-stage.h"
+#include "backends/meta-stage-private.h"
 #include "backends/meta-input-settings-private.h"
 #include <clutter/x11/clutter-x11.h>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/core/window-private.h 
new/mutter-3.28.2+20180507.41303bc01/src/core/window-private.h
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/core/window-private.h      
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/core/window-private.h      
2018-05-07 22:29:42.000000000 +0200
@@ -81,6 +81,7 @@
   META_MOVE_RESIZE_STATE_CHANGED = 1 << 5,
   META_MOVE_RESIZE_UNMAXIMIZE = 1 << 6,
   META_MOVE_RESIZE_FORCE_MOVE = 1 << 7,
+  META_MOVE_RESIZE_WAYLAND_STATE_CHANGED = 1 << 8,
 } MetaMoveResizeFlags;
 
 typedef enum
@@ -88,6 +89,7 @@
   META_MOVE_RESIZE_RESULT_MOVED               = 1 << 0,
   META_MOVE_RESIZE_RESULT_RESIZED             = 1 << 1,
   META_MOVE_RESIZE_RESULT_FRAME_SHAPE_CHANGED = 1 << 2,
+  META_MOVE_RESIZE_RESULT_STATE_CHANGED       = 1 << 3,
 } MetaMoveResizeResultFlags;
 
 typedef enum
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.28.1+20180416.d3d5eb8e1/src/core/window.c 
new/mutter-3.28.2+20180507.41303bc01/src/core/window.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/core/window.c      2018-04-16 
16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/core/window.c      2018-05-07 
22:29:42.000000000 +0200
@@ -3997,7 +3997,7 @@
 
   if ((moved_or_resized ||
        did_placement ||
-       (flags & META_MOVE_RESIZE_STATE_CHANGED) != 0) &&
+       (result & META_MOVE_RESIZE_RESULT_STATE_CHANGED) != 0) &&
       window->known_to_compositor)
     {
       meta_compositor_sync_window_geometry (window->display->compositor,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/meta/meta-monitor-manager.h 
new/mutter-3.28.2+20180507.41303bc01/src/meta/meta-monitor-manager.h
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/meta/meta-monitor-manager.h        
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/meta/meta-monitor-manager.h        
2018-05-07 22:29:42.000000000 +0200
@@ -54,4 +54,7 @@
 
 gint meta_monitor_manager_get_display_configuration_timeout (void);
 
+/* Re-declaration of parent type for introspection */
+GType meta_dbus_display_config_skeleton_get_type (void) G_GNUC_CONST;
+
 #endif /* META_MONITOR_MANAGER_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/meta/meta-stage.h 
new/mutter-3.28.2+20180507.41303bc01/src/meta/meta-stage.h
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/meta/meta-stage.h  1970-01-01 
01:00:00.000000000 +0100
+++ new/mutter-3.28.2+20180507.41303bc01/src/meta/meta-stage.h  2018-05-07 
22:29:42.000000000 +0200
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2012 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_STAGE_H
+#define META_STAGE_H
+
+#include "clutter/clutter.h"
+
+G_BEGIN_DECLS
+
+#define META_TYPE_STAGE (meta_stage_get_type ())
+G_DECLARE_FINAL_TYPE (MetaStage, meta_stage, META, STAGE, ClutterStage)
+
+G_END_DECLS
+
+#endif /* META_STAGE_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/meta/meta-window-group.h 
new/mutter-3.28.2+20180507.41303bc01/src/meta/meta-window-group.h
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/meta/meta-window-group.h   
1970-01-01 01:00:00.000000000 +0100
+++ new/mutter-3.28.2+20180507.41303bc01/src/meta/meta-window-group.h   
2018-05-07 22:29:42.000000000 +0200
@@ -0,0 +1,11 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
+#ifndef META_WINDOW_GROUP_H
+#define META_WINDOW_GROUP_H
+
+#include "clutter/clutter.h"
+
+#define META_TYPE_WINDOW_GROUP (meta_window_group_get_type())
+G_DECLARE_FINAL_TYPE (MetaWindowGroup, meta_window_group, META, WINDOW_GROUP, 
ClutterActor)
+
+#endif /* META_WINDOW_GROUP_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.28.1+20180416.d3d5eb8e1/src/ui/frames.c 
new/mutter-3.28.2+20180507.41303bc01/src/ui/frames.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/ui/frames.c        2018-04-16 
16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/ui/frames.c        2018-05-07 
22:29:42.000000000 +0200
@@ -1330,7 +1330,9 @@
   MetaFrameBorders borders;
   MetaFrameFlags flags;
   MetaRectangle frame_rect;
-  int scale = meta_theme_get_window_scaling_factor ();
+  cairo_surface_t *surface;
+  double xscale, yscale;
+  int scale;
 
   meta_window_get_frame_rect (frame->meta_window, &frame_rect);
 
@@ -1340,7 +1342,11 @@
   meta_ui_frame_get_borders (frame, &borders);
 
   /* See comment in meta_frame_layout_draw_with_style() for details on HiDPI 
handling */
-  cairo_scale (cr, scale, scale);
+  scale = meta_theme_get_window_scaling_factor ();
+  surface = cairo_get_target (cr);
+  cairo_surface_get_device_scale (surface, &xscale, &yscale);
+  cairo_surface_set_device_scale (surface, scale, scale);
+
   gtk_render_background (frame->style_info->styles[META_STYLE_ELEMENT_FRAME], 
cr,
                          borders.invisible.left / scale,
                          borders.invisible.top / scale,
@@ -1349,6 +1355,8 @@
                          borders.invisible.left / scale,
                          borders.invisible.top / scale,
                          frame_rect.width / scale, borders.total.top / scale);
+
+  cairo_surface_set_device_scale (surface, xscale, yscale);
 }
 
 /* XXX -- this is disgusting. Find a better approach here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-3.28.1+20180416.d3d5eb8e1/src/ui/theme.c 
new/mutter-3.28.2+20180507.41303bc01/src/ui/theme.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/ui/theme.c 2018-04-16 
16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/ui/theme.c 2018-05-07 
22:29:42.000000000 +0200
@@ -736,7 +736,9 @@
   GdkRectangle titlebar_rect;
   GdkRectangle button_rect;
   const MetaFrameBorders *borders;
-  int scale = meta_theme_get_window_scaling_factor ();
+  cairo_surface_t *frame_surface;
+  double xscale, yscale;
+  int scale;
 
   /* We opt out of GTK+/Clutter's HiDPI handling, so we have to do the scaling
    * ourselves; the nitty-gritty is a bit confusing, so here is an overview:
@@ -748,8 +750,14 @@
    *  - for drawing, we scale the canvas to have GTK+ render elements (borders,
    *    radii, ...) at the correct scale - as a result, we have to "unscale"
    *    the geometry again to not apply the scaling twice
+   *  - As per commit e36b629c GTK expects the device scale to be set and match
+   *    the final scaling or the surface caching won't take this in account
+   *    breaking -gtk-scaled items.
    */
-  cairo_scale (cr, scale, scale);
+  scale = meta_theme_get_window_scaling_factor ();
+  frame_surface = cairo_get_target (cr);
+  cairo_surface_get_device_scale (frame_surface, &xscale, &yscale);
+  cairo_surface_set_device_scale (frame_surface, scale, scale);
 
   borders = &fgeom->borders;
 
@@ -905,6 +913,8 @@
         gtk_style_context_remove_class (style, button_class);
       gtk_style_context_set_state (style, state);
     }
+
+  cairo_surface_set_device_scale (frame_surface, xscale, yscale);
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-legacy-xdg-shell.c
 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-legacy-xdg-shell.c
--- 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-legacy-xdg-shell.c
    2018-04-16 16:03:56.000000000 +0200
+++ 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-legacy-xdg-shell.c
    2018-05-07 22:29:42.000000000 +0200
@@ -585,6 +585,17 @@
           (new_max_height == 0 || new_min_height <= new_max_height));
 }
 
+static inline gboolean
+did_geometry_change (MetaWaylandZxdgSurfaceV6 *xdg_surface,
+                     MetaWaylandPendingState  *pending)
+{
+  MetaWaylandZxdgSurfaceV6Private *priv =
+    meta_wayland_zxdg_surface_v6_get_instance_private (xdg_surface);
+
+  return pending->has_new_geometry &&
+         !meta_rectangle_equal (&priv->geometry, &pending->new_geometry);
+}
+
 static void
 meta_wayland_zxdg_toplevel_v6_commit (MetaWaylandSurfaceRole  *surface_role,
                                       MetaWaylandPendingState *pending)
@@ -600,6 +611,11 @@
     meta_wayland_surface_role_get_surface (surface_role);
   MetaWindow *window = surface->window;
   MetaRectangle window_geometry;
+  gboolean geometry_changed;
+
+  /* This check must happen before chaining up, otherwise the new geometry
+   * is applied and it'll always return FALSE. */
+  geometry_changed = did_geometry_change (xdg_surface, pending);
 
   surface_role_class =
     META_WAYLAND_SURFACE_ROLE_CLASS 
(meta_wayland_zxdg_toplevel_v6_parent_class);
@@ -618,7 +634,7 @@
   if (!window)
     return;
 
-  if (pending->has_new_geometry)
+  if (geometry_changed || meta_window_wayland_needs_move_resize (window))
     {
       window_geometry =
         meta_wayland_zxdg_surface_v6_get_window_geometry (xdg_surface);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-seat.c 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-seat.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-seat.c        
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-seat.c        
2018-05-07 22:29:42.000000000 +0200
@@ -325,7 +325,8 @@
 meta_wayland_seat_update (MetaWaylandSeat    *seat,
                           const ClutterEvent *event)
 {
-  if (!event_from_supported_hardware_device (seat, event) &&
+  if (!(clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_INPUT_METHOD) &&
+      !event_from_supported_hardware_device (seat, event) &&
       !event_is_synthesized_crossing (event))
     return;
 
@@ -363,7 +364,8 @@
 meta_wayland_seat_handle_event (MetaWaylandSeat *seat,
                                 const ClutterEvent *event)
 {
-  if (!event_from_supported_hardware_device (seat, event))
+  if (!(clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_INPUT_METHOD) &&
+      !event_from_supported_hardware_device (seat, event))
     return FALSE;
 
   switch (event->type)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-surface.c 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-surface.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-surface.c     
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-surface.c     
2018-05-07 22:29:42.000000000 +0200
@@ -464,7 +464,6 @@
       to->dy = from->dy;
     }
 
-  wl_list_init (&to->frame_callback_list);
   wl_list_insert_list (&to->frame_callback_list, &from->frame_callback_list);
 
   cairo_region_union (to->surface_damage, from->surface_damage);
@@ -581,7 +580,10 @@
         {
           MetaWaylandSurface *parent = surface->sub.parent;
 
-          return meta_wayland_surface_is_effectively_synchronized (parent);
+          if (parent)
+            return meta_wayland_surface_is_effectively_synchronized (parent);
+
+          return TRUE;
         }
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-xdg-foreign.c 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-xdg-foreign.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-xdg-foreign.c 
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-xdg-foreign.c 
2018-05-07 22:29:42.000000000 +0200
@@ -252,10 +252,8 @@
   if (!surface->role)
     return FALSE;
 
-  if (!META_IS_WAYLAND_XDG_SURFACE (surface->role))
-    return FALSE;
-
-  if (!META_IS_WAYLAND_ZXDG_SURFACE_V6 (surface->role))
+  if (!META_IS_WAYLAND_XDG_TOPLEVEL (surface->role) &&
+      !META_IS_WAYLAND_ZXDG_TOPLEVEL_V6 (surface->role))
     return FALSE;
 
   if (!surface->window)
@@ -384,7 +382,7 @@
       (!META_IS_WAYLAND_XDG_SURFACE (exported->surface->role) &&
        !META_IS_WAYLAND_ZXDG_SURFACE_V6 (exported->surface->role)))
     {
-      zxdg_imported_v1_send_destroyed (resource);
+      zxdg_imported_v1_send_destroyed (xdg_imported_resource);
       return;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-xdg-shell.c 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-xdg-shell.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-wayland-xdg-shell.c   
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-wayland-xdg-shell.c   
2018-05-07 22:29:42.000000000 +0200
@@ -608,6 +608,17 @@
           (new_max_height == 0 || new_min_height <= new_max_height));
 }
 
+static inline gboolean
+did_geometry_change (MetaWaylandXdgSurface   *xdg_surface,
+                     MetaWaylandPendingState *pending)
+{
+  MetaWaylandXdgSurfacePrivate *priv =
+    meta_wayland_xdg_surface_get_instance_private (xdg_surface);
+
+  return pending->has_new_geometry &&
+         !meta_rectangle_equal (&priv->geometry, &pending->new_geometry);
+}
+
 static void
 meta_wayland_xdg_toplevel_commit (MetaWaylandSurfaceRole  *surface_role,
                                   MetaWaylandPendingState *pending)
@@ -621,6 +632,7 @@
     meta_wayland_surface_role_get_surface (surface_role);
   MetaWindow *window;
   MetaRectangle window_geometry;
+  gboolean geometry_changed;
 
   if (!surface->buffer_ref.buffer && xdg_surface_priv->first_buffer_attached)
     {
@@ -630,6 +642,10 @@
 
   window = surface->window;
 
+  /* This check must happen before chaining up, otherwise the new geometry
+   * is applied and it'll always return FALSE. */
+  geometry_changed = did_geometry_change (xdg_surface, pending);
+
   surface_role_class =
     META_WAYLAND_SURFACE_ROLE_CLASS (meta_wayland_xdg_toplevel_parent_class);
   surface_role_class->commit (surface_role, pending);
@@ -643,7 +659,7 @@
   if (!pending->newly_attached)
     return;
 
-  if (pending->has_new_geometry)
+  if (geometry_changed || meta_window_wayland_needs_move_resize (window))
     {
       window_geometry = meta_wayland_xdg_surface_get_window_geometry 
(xdg_surface);
       meta_window_wayland_move_resize (window,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-window-wayland.c 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-window-wayland.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-window-wayland.c      
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-window-wayland.c      
2018-05-07 22:29:42.000000000 +0200
@@ -48,6 +48,7 @@
   int geometry_scale;
 
   MetaWaylandSerial pending_configure_serial;
+  gboolean has_pending_state_change;
   gboolean has_pending_move;
   int pending_move_x;
   int pending_move_y;
@@ -324,6 +325,9 @@
           window->buffer_rect.x = new_buffer_x;
           window->buffer_rect.y = new_buffer_y;
         }
+
+      if (flags & META_MOVE_RESIZE_WAYLAND_STATE_CHANGED)
+        *result |= META_MOVE_RESIZE_RESULT_STATE_CHANGED;
     }
   else
     {
@@ -336,6 +340,8 @@
           wl_window->pending_move_x = new_x;
           wl_window->pending_move_y = new_y;
         }
+
+      wl_window->has_pending_state_change = (flags & 
META_MOVE_RESIZE_STATE_CHANGED) != 0;
     }
 }
 
@@ -629,12 +635,9 @@
 }
 
 static gboolean
-should_do_pending_move (MetaWindowWayland *wl_window,
-                        MetaWaylandSerial *acked_configure_serial)
+is_pending_ack_configure (MetaWindowWayland *wl_window,
+                          MetaWaylandSerial *acked_configure_serial)
 {
-  if (!wl_window->has_pending_move)
-    return FALSE;
-
   if (wl_window->pending_configure_serial.set)
     {
       /* If we're waiting for a configure and this isn't an ACK for
@@ -677,6 +680,7 @@
   int gravity;
   MetaRectangle rect;
   MetaMoveResizeFlags flags;
+  gboolean pending_ack_configure;
 
   /* new_geom is in the logical pixel coordinate space, but MetaWindow wants 
its
    * rects to represent what in turn will end up on the stage, i.e. we need to
@@ -700,10 +704,12 @@
 
   flags = META_MOVE_RESIZE_WAYLAND_RESIZE;
 
+  pending_ack_configure = is_pending_ack_configure (wl_window, 
acked_configure_serial);
+
   /* x/y are ignored when we're doing interactive resizing */
   if (!meta_grab_op_is_resizing (window->display->grab_op))
     {
-      if (wl_window->has_pending_move && should_do_pending_move (wl_window, 
acked_configure_serial))
+      if (wl_window->has_pending_move && pending_ack_configure)
         {
           rect.x = wl_window->pending_move_x;
           rect.y = wl_window->pending_move_y;
@@ -724,6 +730,12 @@
         }
     }
 
+  if (wl_window->has_pending_state_change && pending_ack_configure)
+    {
+      flags |= META_MOVE_RESIZE_WAYLAND_STATE_CHANGED;
+      wl_window->has_pending_state_change = FALSE;
+    }
+
   wl_window->pending_configure_serial.set = FALSE;
 
   rect.width = new_geom.width;
@@ -903,3 +915,10 @@
   scale_size (width, height, scale);
 }
 
+gboolean
+meta_window_wayland_needs_move_resize (MetaWindow *window)
+{
+  MetaWindowWayland *wl_window = META_WINDOW_WAYLAND (window);
+
+  return wl_window->has_pending_state_change || wl_window->has_pending_move;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-window-wayland.h 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-window-wayland.h
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-window-wayland.h      
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-window-wayland.h      
2018-05-07 22:29:42.000000000 +0200
@@ -78,5 +78,6 @@
                                        int        *width,
                                        int        *height);
 
+gboolean meta_window_wayland_needs_move_resize (MetaWindow *window);
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-xwayland.c 
new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-xwayland.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/wayland/meta-xwayland.c    
2018-04-16 16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/wayland/meta-xwayland.c    
2018-05-07 22:29:42.000000000 +0200
@@ -26,6 +26,8 @@
 #include "meta-xwayland.h"
 #include "meta-xwayland-private.h"
 
+#include <meta/main.h>
+
 #include <glib.h>
 #include <glib-unix.h>
 #include <errno.h>
@@ -393,30 +395,34 @@
               gpointer      user_data)
 {
   GSubprocess *proc = G_SUBPROCESS (source);
-  GError *error = NULL;
+  g_autoptr (GError) error = NULL;
 
   if (!g_subprocess_wait_finish (proc, result, &error))
     {
-      if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-        g_error ("Failed to finish waiting for Xwayland: %s", error->message);
-      g_clear_error (&error);
+      if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+        return;
+
+      g_warning ("Failed to finish waiting for Xwayland: %s", error->message);
     }
   else if (!g_subprocess_get_successful (proc))
-    g_error ("X Wayland crashed; aborting");
+    g_warning ("X Wayland crashed; exiting");
   else
     {
       /* For now we simply abort if we see the server exit.
        *
        * In the future X will only be loaded lazily for legacy X support
        * but for now it's a hard requirement. */
-      g_error ("Spurious exit of X Wayland server");
+      g_warning ("Spurious exit of X Wayland server");
     }
+
+  meta_exit (META_EXIT_ERROR);
 }
 
 static int
 x_io_error (Display *display)
 {
-  g_error ("Connection to xwayland lost");
+  g_warning ("Connection to xwayland lost");
+  meta_exit (META_EXIT_ERROR);
 
   return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-3.28.1+20180416.d3d5eb8e1/src/x11/window-x11.c 
new/mutter-3.28.2+20180507.41303bc01/src/x11/window-x11.c
--- old/mutter-3.28.1+20180416.d3d5eb8e1/src/x11/window-x11.c   2018-04-16 
16:03:56.000000000 +0200
+++ new/mutter-3.28.2+20180507.41303bc01/src/x11/window-x11.c   2018-05-07 
22:29:42.000000000 +0200
@@ -1282,6 +1282,8 @@
     *result |= META_MOVE_RESIZE_RESULT_MOVED;
   if (need_resize_client || need_resize_frame)
     *result |= META_MOVE_RESIZE_RESULT_RESIZED;
+  if (flags & META_MOVE_RESIZE_STATE_CHANGED)
+    *result |= META_MOVE_RESIZE_RESULT_STATE_CHANGED;
 
   update_gtk_edge_constraints (window);
 }


Reply via email to