diff --git a/0001-frames-Allow-for-unknown-mouse-buttons.patch b/0001-frames-Allow-for-unknown-mouse-buttons.patch new file mode 100644 index 0000000..e4d2fdc --- /dev/null +++ b/0001-frames-Allow-for-unknown-mouse-buttons.patch @@ -0,0 +1,71 @@ +From 473bf38753221dc0002fae309d2f3f217e96c5f5 Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan +Date: Tue, 22 May 2018 11:23:13 +0200 +Subject: [PATCH] frames: Allow for unknown mouse buttons + +Commit 47131b1d ("frames: Handle touch events") introduced an assert to +make sure that all mouse button actions are handled in mutter. + +However, mice can have a more than 5 buttons, so simply ignore the +"other" actions instead of aborting. + +Fixes: https://gitlab.gnome.org/GNOME/mutter/issues/160 +--- + src/ui/frames.c | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/src/ui/frames.c b/src/ui/frames.c +index 850f2850a..6d7b999be 100644 +--- a/src/ui/frames.c ++++ b/src/ui/frames.c +@@ -75,7 +75,8 @@ enum { + META_ACTION_CLICK, + META_ACTION_RIGHT_CLICK, + META_ACTION_MIDDLE_CLICK, +- META_ACTION_DOUBLE_CLICK ++ META_ACTION_DOUBLE_CLICK, ++ META_ACTION_IGNORE + }; + + static GObject * +@@ -974,6 +975,10 @@ get_action (const ClutterEvent *event) + return META_ACTION_RIGHT_CLICK; + case CLUTTER_BUTTON_MIDDLE: + return META_ACTION_MIDDLE_CLICK; ++ default: ++ meta_verbose ("No action triggered for button %u %s\n", ++ event->button.button, ++ (event->type == CLUTTER_BUTTON_PRESS) ? "press" : "release"); + } + } + else if (event->type == CLUTTER_TOUCH_BEGIN || +@@ -983,7 +988,7 @@ get_action (const ClutterEvent *event) + return META_ACTION_CLICK; + } + +- g_assert_not_reached (); ++ return META_ACTION_IGNORE; + } + + static uint32_t +@@ -1115,13 +1120,15 @@ handle_press_event (MetaUIFrame *frame, + g_assert (event->type == CLUTTER_BUTTON_PRESS || + event->type == CLUTTER_TOUCH_BEGIN); + ++ action = get_action (event); ++ if (action == META_ACTION_IGNORE) ++ return FALSE; ++ + display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); + + evtime = clutter_event_get_time (event); + clutter_event_get_coords (event, &x, &y); + control = get_control (frame, x, y); +- action = get_action (event); +- + /* don't do the rest of this if on client area */ + if (control == META_FRAME_CONTROL_CLIENT_AREA) + return FALSE; /* not on the frame, just passed through from client */ +-- +2.17.0 + diff --git a/mutter.spec b/mutter.spec index 5a8c4d7..5204b33 100644 --- a/mutter.spec +++ b/mutter.spec @@ -7,7 +7,7 @@ Name: mutter Version: 3.29.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Window and compositing manager based on Clutter License: GPLv2+ @@ -16,6 +16,10 @@ URL: http://www.gnome.org Source0: http://download.gnome.org/sources/%{name}/3.29/%{name}-%{version}.tar.xz Patch0: startup-notification.patch +# https://gitlab.gnome.org/GNOME/mutter/issues/160 +# https://bugzilla.redhat.com/show_bug.cgi?id=1585360 +# https://gitlab.gnome.org/GNOME/mutter/commit/473bf38753221dc0002fae309d2f3f217e96c5f5 +Patch1: 0001-frames-Allow-for-unknown-mouse-buttons.patch BuildRequires: chrpath BuildRequires: pango-devel @@ -180,6 +184,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop %{_datadir}/mutter/tests %changelog +* Fri Jun 01 2018 Adam Williamson - 3.29.2-2 +- Backport crasher fix from upstream master (#1585360) + * Thu May 24 2018 Florian Müllner - 3.29.2-1 - Update to 3.29.2