From 95b65e2b83aaf78c5dd5118d8df05e6f6b861382 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jun 26 2018 15:01:44 +0000 Subject: import mutter-3.26.2-14.el7_5 --- diff --git a/SOURCES/wacom-pro-pen-3d.patch b/SOURCES/wacom-pro-pen-3d.patch new file mode 100644 index 0000000..f3d155a --- /dev/null +++ b/SOURCES/wacom-pro-pen-3d.patch @@ -0,0 +1,159 @@ +From 42a526581d1216d835dbbbeab5a7bdb75b349179 Mon Sep 17 00:00:00 2001 +From: Jason Gerecke +Date: Tue, 10 Oct 2017 09:18:25 -0700 +Subject: [PATCH 1/2] clutter/evdev: Add support for BTN_STYLUS3 + +BTN_STYLUS3 is defined by the Linux 4.15 kernel and is sent when the +third button on a stylus is pressed. At the moment, only Wacom's "Pro +Pen 3D" has three stylus buttons. Pressing this button triggers a button +8 event to be sent under X11, so we use the same mapping here. + +https://bugzilla.gnome.org/show_bug.cgi?id=790033 +--- + clutter/clutter/evdev/clutter-seat-evdev.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/clutter/clutter/evdev/clutter-seat-evdev.c b/clutter/clutter/evdev/clutter-seat-evdev.c +index e8524da..f98f85a 100644 +--- a/clutter/clutter/evdev/clutter-seat-evdev.c ++++ b/clutter/clutter/evdev/clutter-seat-evdev.c +@@ -45,6 +45,10 @@ + + #define DISCRETE_SCROLL_STEP 10.0 + ++#ifndef BTN_STYLUS3 ++#define BTN_STYLUS3 0x149 /* Linux 4.15 */ ++#endif ++ + void + clutter_seat_evdev_set_libinput_seat (ClutterSeatEvdev *seat, + struct libinput_seat *libinput_seat) +@@ -492,6 +496,10 @@ clutter_seat_evdev_notify_button (ClutterSeatEvdev *seat, + button_nr = CLUTTER_BUTTON_MIDDLE; + break; + ++ case 0x149: /* BTN_STYLUS3 */ ++ button_nr = 8; ++ break; ++ + default: + /* For compatibility reasons, all additional buttons go after the old 4-7 scroll ones */ + if (clutter_input_device_get_device_type (input_device) == CLUTTER_TABLET_DEVICE) +-- +2.17.0 + + +From c42c5294d0ca3d27001f217974cad72a40ffae60 Mon Sep 17 00:00:00 2001 +From: Jason Gerecke +Date: Tue, 10 Oct 2017 08:55:41 -0700 +Subject: [PATCH 2/2] backends: Add support for Wacom stylus + tertiary-button-action + +The tertiary-button-action (see bug 790028) is a place for g-c-c to store +the action which should be performed when a stylus' third button is pressed. +Pressing this button is signaled as a BTN_STYLUS3 event from the kernel or +X11 button 8. + +https://bugzilla.gnome.org/show_bug.cgi?id=790033 +--- + src/backends/meta-input-settings-private.h | 3 ++- + src/backends/meta-input-settings.c | 5 +++-- + src/backends/native/meta-input-settings-native.c | 5 ++++- + src/backends/x11/meta-input-settings-x11.c | 10 ++++++++-- + 4 files changed, 17 insertions(+), 6 deletions(-) + +diff --git a/src/backends/meta-input-settings-private.h b/src/backends/meta-input-settings-private.h +index 605690e..893d4ec 100644 +--- a/src/backends/meta-input-settings-private.h ++++ b/src/backends/meta-input-settings-private.h +@@ -111,7 +111,8 @@ struct _MetaInputSettingsClass + ClutterInputDevice *device, + ClutterInputDeviceTool *tool, + GDesktopStylusButtonAction primary, +- GDesktopStylusButtonAction secondary); ++ GDesktopStylusButtonAction secondary, ++ GDesktopStylusButtonAction tertiary); + gboolean (* has_two_finger_scroll) (MetaInputSettings *settings, + ClutterInputDevice *device); + }; +diff --git a/src/backends/meta-input-settings.c b/src/backends/meta-input-settings.c +index ec0fc9f..989f9e3 100644 +--- a/src/backends/meta-input-settings.c ++++ b/src/backends/meta-input-settings.c +@@ -1453,7 +1453,7 @@ update_stylus_buttonmap (MetaInputSettings *input_settings, + ClutterInputDeviceTool *tool) + { + MetaInputSettingsClass *input_settings_class; +- GDesktopStylusButtonAction primary, secondary; ++ GDesktopStylusButtonAction primary, secondary, tertiary; + GSettings *tool_settings; + + if (clutter_input_device_get_device_type (device) != CLUTTER_TABLET_DEVICE && +@@ -1468,10 +1468,11 @@ update_stylus_buttonmap (MetaInputSettings *input_settings, + + primary = g_settings_get_enum (tool_settings, "button-action"); + secondary = g_settings_get_enum (tool_settings, "secondary-button-action"); ++ tertiary = g_settings_get_enum (tool_settings, "tertiary-button-action"); + + input_settings_class = META_INPUT_SETTINGS_GET_CLASS (input_settings); + input_settings_class->set_stylus_button_map (input_settings, device, tool, +- primary, secondary); ++ primary, secondary, tertiary); + } + + static void +diff --git a/src/backends/native/meta-input-settings-native.c b/src/backends/native/meta-input-settings-native.c +index beb7217..7450725 100644 +--- a/src/backends/native/meta-input-settings-native.c ++++ b/src/backends/native/meta-input-settings-native.c +@@ -547,12 +547,15 @@ meta_input_settings_native_set_stylus_button_map (MetaInputSettings *se + ClutterInputDevice *device, + ClutterInputDeviceTool *tool, + GDesktopStylusButtonAction primary, +- GDesktopStylusButtonAction secondary) ++ GDesktopStylusButtonAction secondary, ++ GDesktopStylusButtonAction tertiary) + { + clutter_evdev_input_device_tool_set_button_code (tool, CLUTTER_BUTTON_MIDDLE, + action_to_evcode (primary)); + clutter_evdev_input_device_tool_set_button_code (tool, CLUTTER_BUTTON_SECONDARY, + action_to_evcode (secondary)); ++ clutter_evdev_input_device_tool_set_button_code (tool, 8, /* Back */ ++ action_to_evcode (tertiary)); + } + + static void +diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c +index 4867b6b..7d5239f 100644 +--- a/src/backends/x11/meta-input-settings-x11.c ++++ b/src/backends/x11/meta-input-settings-x11.c +@@ -1031,7 +1031,8 @@ meta_input_settings_x11_set_stylus_button_map (MetaInputSettings *setti + ClutterInputDevice *device, + ClutterInputDeviceTool *tool, + GDesktopStylusButtonAction primary, +- GDesktopStylusButtonAction secondary) ++ GDesktopStylusButtonAction secondary, ++ GDesktopStylusButtonAction tertiary) + { + MetaDisplay *display = meta_get_display (); + MetaBackend *backend = meta_get_backend (); +@@ -1046,10 +1047,15 @@ meta_input_settings_x11_set_stylus_button_map (MetaInputSettings *setti + xdev = device_ensure_xdevice (device); + if (xdev) + { +- guchar map[3] = { ++ guchar map[8] = { + CLUTTER_BUTTON_PRIMARY, + action_to_button (primary, CLUTTER_BUTTON_MIDDLE), + action_to_button (secondary, CLUTTER_BUTTON_SECONDARY), ++ 4, ++ 5, ++ 6, ++ 7, ++ action_to_button (tertiary, 8), /* "Back" */ + }; + + XSetDeviceButtonMapping (xdisplay, xdev, map, G_N_ELEMENTS (map)); +-- +2.17.0 + diff --git a/SPECS/mutter.spec b/SPECS/mutter.spec index af086a5..cb36e25 100644 --- a/SPECS/mutter.spec +++ b/SPECS/mutter.spec @@ -11,7 +11,7 @@ Name: mutter Version: 3.26.2 -Release: 13%{?dist} +Release: 14%{?dist} Summary: Window and compositing manager based on Clutter License: GPLv2+ @@ -39,6 +39,7 @@ Patch10: 0001-backends-x11-wacom-pressure-curve-is-a-32-bit-proper.patch Patch11: 0001-renderer-x11-Enable-GPU-memory-purge-error-extension.patch Patch12: 0001-backends-Monitor-changes-in-active-tools-settings.patch Patch13: 0001-clutter-x11-Implement-missing-ClutterInputDevice-pad.patch +Patch14: wacom-pro-pen-3d.patch # http://bugzilla.gnome.org/show_bug.cgi?id=733277 Patch20: 0008-Add-support-for-quad-buffer-stereo.patch @@ -215,6 +216,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %{_libdir}/pkgconfig/* %changelog +* Tue Apr 17 2018 Carlos Garnacho - 3.26.2-14 +- Add support for Wacom Pro Pen 3D styli + Resolves: #1568702 + * Fri Feb 23 2018 Carlos Garnacho - 3.26.2-13 - Fix pad ring/strip modes Resolves: #1543633