diff --git a/mutter-3.22.1.tar.xz b/mutter-3.22.1.tar.xz deleted file mode 100644 index 29ec46c..0000000 --- a/mutter-3.22.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ffba28b955dc1b8a4734020de4ed4dff4afed435f0a059974be9bf3168acf59e -size 3532404 diff --git a/mutter-3.22.2.tar.xz b/mutter-3.22.2.tar.xz new file mode 100644 index 0000000..d51845c --- /dev/null +++ b/mutter-3.22.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d59b58356cba1165ef69a98f43e50777fded768860a9b118807c5a47274092a2 +size 3533296 diff --git a/mutter-scale-positioner-coordinates.patch b/mutter-scale-positioner-coordinates.patch deleted file mode 100644 index 954cdad..0000000 --- a/mutter-scale-positioner-coordinates.patch +++ /dev/null @@ -1,280 +0,0 @@ -From 3183f86aea4e3c1005995cfd928b7d42c16ff39f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Fri, 23 Sep 2016 14:01:34 +0800 -Subject: [PATCH] wayland/xdg-shell: Scale positioner coordinates - -When the monitor is scaled (i.e. HiDPI scaling) the placement -coordinates are still in unscaled xdg_surface window geometry -coordinate space. Fix this by simply scaling the coordinates by the -monitor scale of the parent toplevel window. - -This is inherently racy, but since we won't move the toplevel window -before the popup is placed, and we won't move the window without -unmapping the popup, there is little point in introducing more complex -adaptive scaling, especially when the end goal is to get rid of all -these types of scaling hacks. - -https://bugzilla.gnome.org/show_bug.cgi?id=771841 ---- - src/wayland/meta-wayland-xdg-shell.c | 29 +++++++++++++++++++++-------- - 1 file changed, 21 insertions(+), 8 deletions(-) - -diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c -index e9223a9..84bf40d 100644 ---- a/src/wayland/meta-wayland-xdg-shell.c -+++ b/src/wayland/meta-wayland-xdg-shell.c -@@ -126,7 +126,8 @@ G_DEFINE_TYPE_WITH_CODE (MetaWaylandXdgPopup, - popup_surface_iface_init)); - - static MetaPlacementRule --meta_wayland_xdg_positioner_to_placement (MetaWaylandXdgPositioner *xdg_positioner); -+meta_wayland_xdg_positioner_to_placement (MetaWaylandXdgPositioner *xdg_positioner, -+ MetaWaylandSurface *parent_surface); - - static struct wl_resource * - meta_wayland_xdg_surface_get_shell_resource (MetaWaylandXdgSurface *xdg_surface); -@@ -1511,7 +1512,7 @@ xdg_surface_constructor_get_popup (struct wl_client *client, - - xdg_positioner = wl_resource_get_user_data (positioner_resource); - xdg_popup->setup.placement_rule = -- meta_wayland_xdg_positioner_to_placement (xdg_positioner); -+ meta_wayland_xdg_positioner_to_placement (xdg_positioner, parent_surface); - xdg_popup->setup.parent_surface = parent_surface; - } - -@@ -1560,17 +1561,29 @@ xdg_surface_constructor_destructor (struct wl_resource *resource) - } - - static MetaPlacementRule --meta_wayland_xdg_positioner_to_placement (MetaWaylandXdgPositioner *xdg_positioner) -+meta_wayland_xdg_positioner_to_placement (MetaWaylandXdgPositioner *xdg_positioner, -+ MetaWaylandSurface *parent_surface) - { -+ MetaWindow *parent_window; -+ int monitor_scale; -+ -+ parent_window = meta_wayland_surface_get_toplevel_window (parent_surface); -+ monitor_scale = meta_window_wayland_get_main_monitor_scale (parent_window); -+ - return (MetaPlacementRule) { -- .anchor_rect = xdg_positioner->anchor_rect, -+ .anchor_rect = (MetaRectangle) { -+ .x = xdg_positioner->anchor_rect.x * monitor_scale, -+ .y = xdg_positioner->anchor_rect.y * monitor_scale, -+ .width = xdg_positioner->anchor_rect.width * monitor_scale, -+ .height = xdg_positioner->anchor_rect.height * monitor_scale, -+ }, - .gravity = xdg_positioner->gravity, - .anchor = xdg_positioner->anchor, - .constraint_adjustment = xdg_positioner->constraint_adjustment, -- .offset_x = xdg_positioner->offset_x, -- .offset_y = xdg_positioner->offset_y, -- .width = xdg_positioner->width, -- .height = xdg_positioner->height, -+ .offset_x = xdg_positioner->offset_x * monitor_scale, -+ .offset_y = xdg_positioner->offset_y * monitor_scale, -+ .width = xdg_positioner->width * monitor_scale, -+ .height = xdg_positioner->height * monitor_scale, - }; - } - --- -2.7.4 - -From 60315f5a72741d0b6cdbe0ba19d771a922406bbb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Fri, 23 Sep 2016 17:15:56 +0800 -Subject: [PATCH] wayland/xdg-popup: Always use monitor of toplevel - -Always use the monitor of the toplevel surface's window, so that the -popup menu and the parent will always have the same scale. This fixes -the dimensions sent in the xdg_popup configure event. - -https://bugzilla.gnome.org/show_bug.cgi?id=771841 ---- - src/wayland/meta-wayland-xdg-shell.c | 1 + - src/wayland/meta-window-wayland.c | 24 ++++++++++++++++++------ - 2 files changed, 19 insertions(+), 6 deletions(-) - -diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c -index 84bf40d..ac40504 100644 ---- a/src/wayland/meta-wayland-xdg-shell.c -+++ b/src/wayland/meta-wayland-xdg-shell.c -@@ -1464,6 +1464,7 @@ xdg_surface_constructor_get_toplevel (struct wl_client *client, - - window = meta_window_wayland_new (meta_get_display (), surface); - meta_wayland_surface_set_window (surface, window); -+ meta_window_update_monitor (window, FALSE); - } - - static void -diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c -index 7dd6f42..aa89066 100644 ---- a/src/wayland/meta-window-wayland.c -+++ b/src/wayland/meta-window-wayland.c -@@ -352,19 +352,31 @@ scale_rect_size (MetaRectangle *rect, - static void - meta_window_wayland_update_main_monitor (MetaWindow *window) - { -+ MetaWindow *toplevel_window; - const MetaMonitorInfo *from; - const MetaMonitorInfo *to; - const MetaMonitorInfo *scaled_new; - float scale; - MetaRectangle rect; - -- /* Require both the current and the new monitor would be the new main monitor, -- * even given the resulting scale the window would end up having. This is -- * needed to avoid jumping back and forth between the new and the old, since -- * changing main monitor may cause the window to be resized so that it no -- * longer have that same new main monitor. */ - from = window->monitor; -- to = meta_screen_calculate_monitor_for_window (window->screen, window); -+ -+ /* If the window is not a toplevel window (i.e. it's a popup window) just use -+ * the monitor of the toplevel. */ -+ toplevel_window = meta_wayland_surface_get_toplevel_window (window->surface); -+ if (toplevel_window != window) -+ { -+ to = toplevel_window->monitor; -+ } -+ else -+ { -+ /* Require both the current and the new monitor would be the new main monitor, -+ * even given the resulting scale the window would end up having. This is -+ * needed to avoid jumping back and forth between the new and the old, since -+ * changing main monitor may cause the window to be resized so that it no -+ * longer have that same new main monitor. */ -+ to = meta_screen_calculate_monitor_for_window (window->screen, window); -+ } - - if (from == to) - return; --- -2.7.4 - -From 74274edbd5cdf36d90012fcff9199ccf64cb146f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Fri, 23 Sep 2016 17:18:21 +0800 -Subject: [PATCH] wayland/xdg-shell: Scale configure relative popup coordinate - -The parent local popup coordinate needs to be scaled according to the -monitor scale it is assigned. - -https://bugzilla.gnome.org/show_bug.cgi?id=771841 ---- - src/wayland/meta-wayland-xdg-shell.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c -index ac40504..70d8ee4 100644 ---- a/src/wayland/meta-wayland-xdg-shell.c -+++ b/src/wayland/meta-wayland-xdg-shell.c -@@ -874,6 +874,7 @@ xdg_popup_role_configure (MetaWaylandSurfaceRoleShellSurface *shell_surface_role - MetaWaylandXdgPopup *xdg_popup = META_WAYLAND_XDG_POPUP (shell_surface_role); - MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (xdg_popup); - MetaWindow *parent_window = xdg_popup->parent_surface->window; -+ int monitor_scale; - int x, y; - - /* If the parent surface was destroyed, its window will be destroyed -@@ -887,8 +888,9 @@ xdg_popup_role_configure (MetaWaylandSurfaceRoleShellSurface *shell_surface_role - if (!parent_window) - return; - -- x = new_x - parent_window->rect.x; -- y = new_y - parent_window->rect.y; -+ monitor_scale = meta_window_wayland_get_main_monitor_scale (parent_window); -+ x = (new_x - parent_window->rect.x) / monitor_scale; -+ y = (new_y - parent_window->rect.y) / monitor_scale; - zxdg_popup_v6_send_configure (xdg_popup->resource, - x, y, new_width, new_height); - meta_wayland_xdg_surface_send_configure (xdg_surface); --- -2.7.4 - -From c5ef7eb1a8b255dfbad7c32ebde6241dc411fb7d Mon Sep 17 00:00:00 2001 -From: Sjoerd Simons -Date: Fri, 23 Sep 2016 23:09:39 +0200 -Subject: [PATCH] wayland/xdg-popup: Force monitor of the top-level - -Directly set the monitor of the toplevel window for the popup to avoid -the change not being applied due to later constraints calculation. - -Signed-off-by: Sjoerd Simons - -https://bugzilla.gnome.org/show_bug.cgi?id=771841 ---- - src/wayland/meta-window-wayland.c | 19 +++++++++---------- - 1 file changed, 9 insertions(+), 10 deletions(-) - -diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c -index aa89066..d85e935 100644 ---- a/src/wayland/meta-window-wayland.c -+++ b/src/wayland/meta-window-wayland.c -@@ -366,18 +366,17 @@ meta_window_wayland_update_main_monitor (MetaWindow *window) - toplevel_window = meta_wayland_surface_get_toplevel_window (window->surface); - if (toplevel_window != window) - { -- to = toplevel_window->monitor; -- } -- else -- { -- /* Require both the current and the new monitor would be the new main monitor, -- * even given the resulting scale the window would end up having. This is -- * needed to avoid jumping back and forth between the new and the old, since -- * changing main monitor may cause the window to be resized so that it no -- * longer have that same new main monitor. */ -- to = meta_screen_calculate_monitor_for_window (window->screen, window); -+ window->monitor = toplevel_window->monitor; -+ return; - } - -+ /* Require both the current and the new monitor would be the new main monitor, -+ * even given the resulting scale the window would end up having. This is -+ * needed to avoid jumping back and forth between the new and the old, since -+ * changing main monitor may cause the window to be resized so that it no -+ * longer have that same new main monitor. */ -+ to = meta_screen_calculate_monitor_for_window (window->screen, window); -+ - if (from == to) - return; - --- -2.9.3 - -From b7d5bac26acbaee954e4db5fc9032cc8bc899285 Mon Sep 17 00:00:00 2001 -From: Sjoerd Simons -Date: Fri, 23 Sep 2016 23:12:56 +0200 -Subject: [PATCH] wayland/xdg-shell: update popup window monitor early - -As meta_window_place_with_placement_rule will trigger a configure event -being sent ensure that the popup is placed on the correct monitor first -to ensure the right scale factor is applied. - -Signed-off-by: Sjoerd Simons - -https://bugzilla.gnome.org/show_bug.cgi?id=771841 ---- - src/wayland/meta-wayland-xdg-shell.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c -index 70d8ee4..b8e7f83 100644 ---- a/src/wayland/meta-wayland-xdg-shell.c -+++ b/src/wayland/meta-wayland-xdg-shell.c -@@ -794,8 +794,9 @@ finish_popup_setup (MetaWaylandXdgPopup *xdg_popup) - &xdg_popup->parent_destroy_listener); - - window = meta_window_wayland_new (display, surface); -- meta_window_place_with_placement_rule (window, &placement_rule); - meta_wayland_surface_set_window (surface, window); -+ meta_window_update_monitor (window, FALSE); -+ meta_window_place_with_placement_rule (window, &placement_rule); - - if (seat) - { --- -2.9.3 - - diff --git a/mutter-screeenshot-coords.patch b/mutter-screeenshot-coords.patch deleted file mode 100644 index 1f2910b..0000000 --- a/mutter-screeenshot-coords.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 31356cec7272d266206ff56669a2d86d689615fe Mon Sep 17 00:00:00 2001 -From: Rui Matos -Date: Wed, 21 Sep 2016 15:06:08 +0200 -Subject: [PATCH] clutter/stage: Fix framebuffer capture origin offset (again) - -Commit 5fbb4793017b1891f0de4720a9793e8cfc1c8483 was wrong too. What we -really want to do here is getting view relative coordinates given the -view's and the rectangle's global coordinates so we need to subtract -the view's origin from the rectangle's. - -https://bugzilla.gnome.org/show_bug.cgi?id=771502 ---- - clutter/clutter/clutter-stage.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c -index 1d2c0bc..21968b9 100644 ---- a/clutter/clutter/clutter-stage.c -+++ b/clutter/clutter/clutter-stage.c -@@ -4712,8 +4712,8 @@ capture_view (ClutterStage *stage, - clutter_stage_view_get_layout (view, &view_layout); - - cogl_framebuffer_read_pixels_into_bitmap (framebuffer, -- view_layout.x + rect->x, -- view_layout.y + rect->y, -+ rect->x - view_layout.x, -+ rect->y - view_layout.y, - COGL_READ_PIXELS_COLOR_BUFFER, - bitmap); - --- -2.7.4 diff --git a/mutter.changes b/mutter.changes index ef6cf06..cb3152c 100644 --- a/mutter.changes +++ b/mutter.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Fri Nov 11 09:58:32 UTC 2016 - dimstar@opensuse.org + +- Update to version 3.22.2: + + Really fix framebuffer capture origin offset (bgo#771502). + + Fix session going into idle mode immediately on startup + (bgo#772839). + + Fix mirror mode with stage views (bgo#773115). + + Improve pointer constraints support (bgo#771859). + + Stack docks below other windows on fullscreen monitors + (bgo#772937). + + Fix switching between two finger- and edge scrolling on wayland + (bgo#771744). + + Fix popup grabs blocking screen lock on wayland (bgo#771235). + + Fix various crashes on wayland (bgo#771646, bgo#771858). + + Fix various placement issues on wayland (bgo#768039, + bgo#771841, bgo#773141, bgo#772729). + + Misc. bug fixes: bgo#771019, bgo#773116, bgo#772914, + bgo#773210. + + Updated translations. +- Drop upstream fixed patches: + + mutter-screeenshot-coords.patch + + mutter-scale-positioner-coordinates.patch + ------------------------------------------------------------------- Fri Nov 4 21:38:00 UTC 2016 - jengelh@inai.de diff --git a/mutter.spec b/mutter.spec index 66e083e..901c1fc 100644 --- a/mutter.spec +++ b/mutter.spec @@ -25,7 +25,7 @@ %global __provides_exclude_from ^%{_libdir}/mutter/.*.typelib$ Name: mutter -Version: 3.22.1 +Version: 3.22.2 Release: 0 Summary: Window and compositing manager based on Clutter License: GPL-2.0+ @@ -38,10 +38,6 @@ Patch1: mutter-bell.patch Patch2: relax-some-constraints-on-CSD-windows-in-sle-classic.patch # PATCH-FIX-UPSTREAM mutter-bsc984738-grab-display.patch bsc#984738 bgo#769387 hpj@suse.com -- Revert a upstream commit to avoid X11 race condition that results in wrong dialog sizes. Patch3: mutter-bsc984738-grab-display.patch -# PATCH-FIX-UPSTREAM mutter-screeenshot-coords.patch bgo#771502 dimstar@opensuse.org -- Yet another fix for area-screenshots -Patch4: mutter-screeenshot-coords.patch -# PATCH-FIX-UPSTREAM mutter-scale-positioner-coordinates.patch bgo#771841 zaitor@opensuse.org -- wayland/xdg-shell: Scale positioner coordinates, fix hidpi menus. -Patch5: mutter-scale-positioner-coordinates.patch # PATCH-FIX-UPSTREAM mutter-fix-startup.patch bgo#768531 zaitor@opensuse.org -- Fix slow startup notification on wayland Patch6: mutter-fix-startup.patch BuildRequires: fdupes @@ -100,9 +96,9 @@ from Metacity. %package -n libmutter0 Summary: Window and compositing manager based on Clutter -Group: System/Libraries # we need the gsettings schema; hopefully, they'll stay backwards compatible # (since we can't require = version, to not break SLPP) +Group: System/Libraries Requires: %{name}-data >= %{version} %description -n libmutter0 @@ -142,8 +138,6 @@ translation-update-upstream %patch2 -p1 %patch3 -p1 %endif -%patch4 -p1 -%patch5 -p1 %patch6 -p1 %build