import mutter-40.9-14.el9

This commit is contained in:
CentOS Sources 2023-03-28 11:22:26 +00:00 committed by Stepan Oksanichenko
parent 6a46d2de32
commit 22e45bd511
7 changed files with 367 additions and 53 deletions

View File

@ -0,0 +1,34 @@
From ba25271408a32a2a73a82acc6e094a611001c9f0 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Fri, 16 Dec 2022 23:06:33 +0100
Subject: [PATCH] backends: Only apply EDID-based tablet mapping heuristic on
integrated devices
These are the ones attached to a display, thus they are the ones that may need
help from this heuristic. Non-integrated tablets (e.g. Intuos) will default to
the span of all monitors.
Fixes mapping of opaque tablets if a display-integrated tablet of the same
brand is also plugged in.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2767>
---
src/backends/meta-input-mapper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/backends/meta-input-mapper.c b/src/backends/meta-input-mapper.c
index cc75f14e8..71d193e5f 100644
--- a/src/backends/meta-input-mapper.c
+++ b/src/backends/meta-input-mapper.c
@@ -455,7 +455,7 @@ guess_candidates (MetaInputMapper *mapper,
g_assert (META_IS_MONITOR (l->data));
- if (match_edid (input, l->data, &edid_match))
+ if (integrated && match_edid (input, l->data, &edid_match))
match.score |= 1 << edid_match;
if (integrated && match_size (input, l->data))
--
2.38.1

View File

@ -0,0 +1,52 @@
From 5cd66485cdd99068dab0f57d7f64d3ef294b0037 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 4 Aug 2021 19:30:10 +0200
Subject: [PATCH] clutter/text: Don't query preferred size without allocation
The size request functions query the resource scale, which hits
an assert if headless. The returned sizes are already only used
when clutter_actor_has_allocation() is true, so this doesn't
change the condition for calling either redraw or relayout.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4522
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1956>
---
clutter/clutter/clutter-text.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/clutter/clutter/clutter-text.c b/clutter/clutter/clutter-text.c
index 45c7eac56b..80e53ea32f 100644
--- a/clutter/clutter/clutter-text.c
+++ b/clutter/clutter/clutter-text.c
@@ -4797,16 +4797,21 @@ static void
clutter_text_queue_redraw_or_relayout (ClutterText *self)
{
ClutterActor *actor = CLUTTER_ACTOR (self);
- gfloat preferred_width;
- gfloat preferred_height;
+ float preferred_width = -1.;
+ float preferred_height = -1.;
clutter_text_dirty_cache (self);
- /* we're using our private implementations here to avoid the caching done by ClutterActor */
- clutter_text_get_preferred_width (actor, -1, NULL, &preferred_width);
- clutter_text_get_preferred_height (actor, preferred_width, NULL, &preferred_height);
+ if (clutter_actor_has_allocation (actor))
+ {
+ /* we're using our private implementations here to avoid the caching done by ClutterActor */
+ clutter_text_get_preferred_width (actor, -1, NULL, &preferred_width);
+ clutter_text_get_preferred_height (actor, preferred_width, NULL,
+ &preferred_height);
+ }
- if (clutter_actor_has_allocation (actor) &&
+ if (preferred_width > 0 &&
+ preferred_height > 0 &&
fabsf (preferred_width - clutter_actor_get_width (actor)) <= 0.001 &&
fabsf (preferred_height - clutter_actor_get_height (actor)) <= 0.001)
clutter_text_queue_redraw (actor);
--
2.31.1

View File

@ -0,0 +1,45 @@
From 168a47c9ebefaeca6cc25fcbc0d41ac50c16f400 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Wed, 1 Feb 2023 10:07:53 +0100
Subject: [PATCH] gpu/kms: Report that we can have outputs if we have
connectors
As part of https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/525
(introduction of transactional KMS API), the logic determining whether a
GPU can have outputs was changed from whether any connectors existed to
whether any connected connectors existed. That effectively meant that we
wouldn't attempt to start at all if there were no monitors connected
while starting up.
This was unintentional, so lets revert back the expected behavior.
---
src/backends/native/meta-gpu-kms.c | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/src/backends/native/meta-gpu-kms.c b/src/backends/native/meta-gpu-kms.c
index e81c90a022..2756bddb26 100644
--- a/src/backends/native/meta-gpu-kms.c
+++ b/src/backends/native/meta-gpu-kms.c
@@ -399,18 +399,7 @@ meta_gpu_kms_read_current (MetaGpu *gpu,
gboolean
meta_gpu_kms_can_have_outputs (MetaGpuKms *gpu_kms)
{
- GList *l;
- int n_connected_connectors = 0;
-
- for (l = meta_kms_device_get_connectors (gpu_kms->kms_device); l; l = l->next)
- {
- MetaKmsConnector *kms_connector = l->data;
-
- if (meta_kms_connector_get_current_state (kms_connector))
- n_connected_connectors++;
- }
-
- return n_connected_connectors > 0;
+ return !!meta_kms_device_get_connectors (gpu_kms->kms_device);
}
MetaGpuKms *
--
2.39.1

View File

@ -0,0 +1,107 @@
From 86000c32d64cea7be2e6ed911cb9ea5df1306c0e Mon Sep 17 00:00:00 2001
From: Mario Limonciello <mario.limonciello@amd.com>
Date: Thu, 18 Aug 2022 13:36:20 -0500
Subject: [PATCH 1/2] output/kms: Add more heuristics to decide when to offer
fallback modes
If the panel is connected via eDP and supports more than one mode
at different resolutions don't try to add more.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2586>
(cherry picked from commit 96aa0fb8536eca579ceb1b17d83e19cf9e3e9e81)
(cherry picked from commit 877cc3eb7d44e2886395151f763ec09bea350444)
---
src/backends/native/meta-output-kms.c | 56 +++++++++++++++++++++------
1 file changed, 44 insertions(+), 12 deletions(-)
diff --git a/src/backends/native/meta-output-kms.c b/src/backends/native/meta-output-kms.c
index f35cdf04e1..9adc20bfd9 100644
--- a/src/backends/native/meta-output-kms.c
+++ b/src/backends/native/meta-output-kms.c
@@ -224,6 +224,45 @@ compare_modes (const void *one,
meta_crtc_mode_get_name (crtc_mode_two));
}
+static gboolean
+are_all_modes_equally_sized (MetaOutputInfo *output_info)
+{
+ const MetaCrtcModeInfo *base =
+ meta_crtc_mode_get_info (output_info->modes[0]);
+ int i;
+
+ for (i = 1; i < output_info->n_modes; i++)
+ {
+ const MetaCrtcModeInfo *mode_info =
+ meta_crtc_mode_get_info (output_info->modes[i]);
+
+ if (base->width != mode_info->width ||
+ base->height != mode_info->height)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+maybe_add_fallback_modes (const MetaKmsConnectorState *connector_state,
+ MetaOutputInfo *output_info,
+ MetaGpuKms *gpu_kms,
+ MetaKmsConnector *kms_connector)
+{
+ if (!connector_state->has_scaling)
+ return;
+
+ if (output_info->connector_type == DRM_MODE_CONNECTOR_eDP &&
+ !are_all_modes_equally_sized (output_info))
+ return;
+
+ meta_topic (META_DEBUG_KMS, "Adding common modes to connector %u on %s",
+ meta_kms_connector_get_id (kms_connector),
+ meta_gpu_kms_get_file_path (gpu_kms));
+ add_common_modes (output_info, gpu_kms);
+}
+
static gboolean
init_output_modes (MetaOutputInfo *output_info,
MetaGpuKms *gpu_kms,
@@ -252,14 +291,7 @@ init_output_modes (MetaOutputInfo *output_info,
output_info->preferred_mode = output_info->modes[i];
}
- if (connector_state->has_scaling)
- {
- meta_topic (META_DEBUG_KMS, "Adding common modes to connector %u on %s",
- meta_kms_connector_get_id (kms_connector),
- meta_gpu_kms_get_file_path (gpu_kms));
- add_common_modes (output_info, gpu_kms);
- }
-
+ maybe_add_fallback_modes (connector_state, output_info, gpu_kms, kms_connector);
if (!output_info->modes)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
@@ -322,6 +354,10 @@ meta_output_kms_new (MetaGpuKms *gpu_kms,
output_info->height_mm = connector_state->height_mm;
}
+ drm_connector_type = meta_kms_connector_get_connector_type (kms_connector);
+ output_info->connector_type =
+ meta_kms_connector_type_from_drm (drm_connector_type);
+
if (!init_output_modes (output_info, gpu_kms, kms_connector, error))
return NULL;
@@ -349,10 +385,6 @@ meta_output_kms_new (MetaGpuKms *gpu_kms,
meta_output_info_parse_edid (output_info, connector_state->edid_data);
- drm_connector_type = meta_kms_connector_get_connector_type (kms_connector);
- output_info->connector_type =
- meta_kms_connector_type_from_drm (drm_connector_type);
-
output_info->tile_info = connector_state->tile_info;
output = g_object_new (META_TYPE_OUTPUT_KMS,
--
2.37.1

View File

@ -0,0 +1,47 @@
From cd8b90a7a7185c3f177469d1a37654a9e8539cd1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Thu, 29 Sep 2022 14:23:55 +0200
Subject: [PATCH 2/2] output/kms: Don't attemp to add common modes on
connectors without modes
We have no way to sanely add safe modes if there are no modes we can
compare with, thus don't try.
Fixes the following crash:
#0 are_all_modes_equally_sized at ../src/backends/native/meta-output-kms.c:284
#1 maybe_add_fallback_modes at ../src/backends/native/meta-output-kms.c:310
#2 init_output_modes at ../src/backends/native/meta-output-kms.c:347
#3 meta_output_kms_new at ../src/backends/native/meta-output-kms.c:414
#4 init_outputs at ../src/backends/native/meta-gpu-kms.c:332
#5 meta_gpu_kms_read_current at ../src/backends/native/meta-gpu-kms.c:368
#6 meta_gpu_kms_new at ../src/backends/native/meta-gpu-kms.c:403
#7 create_gpu_from_udev_device at ../src/backends/native/meta-backend-native.c:461
#8 init_gpus at ../src/backends/native/meta-backend-native.c:551
#9 meta_backend_native_initable_init at ../src/backends/native/meta-backend-native.c:632
Fixes: 877cc3eb7d44e2886395151f763ec09bea350444
Related: https://bugzilla.redhat.com/show_bug.cgi?id=2127801
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2646>
(cherry picked from commit 2c8adb19660cb2cd53381372833e088962437d3b)
---
src/backends/native/meta-output-kms.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/backends/native/meta-output-kms.c b/src/backends/native/meta-output-kms.c
index 9adc20bfd9..058ab7c053 100644
--- a/src/backends/native/meta-output-kms.c
+++ b/src/backends/native/meta-output-kms.c
@@ -250,6 +250,9 @@ maybe_add_fallback_modes (const MetaKmsConnectorState *connector_state,
MetaGpuKms *gpu_kms,
MetaKmsConnector *kms_connector)
{
+ if (!connector_state->modes)
+ return;
+
if (!connector_state->has_scaling)
return;
--
2.37.1

View File

@ -1,4 +1,4 @@
From 705818340dec181335b48ab73d6411e639daaeae Mon Sep 17 00:00:00 2001 From 22fe64732e11199901d4a35f9d3c63d5d6deb3a3 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org> From: Carlos Garnacho <carlosg@gnome.org>
Date: Tue, 1 Jun 2021 11:44:20 +0200 Date: Tue, 1 Jun 2021 11:44:20 +0200
Subject: [PATCH 1/6] backends/x11: Support synaptics configuration Subject: [PATCH 1/6] backends/x11: Support synaptics configuration
@ -6,11 +6,11 @@ Subject: [PATCH 1/6] backends/x11: Support synaptics configuration
The code is taken mostly as-is from g-s-d, so we can drag the The code is taken mostly as-is from g-s-d, so we can drag the
dead horse a bit longer. dead horse a bit longer.
--- ---
src/backends/x11/meta-input-settings-x11.c | 275 +++++++++++++++++++++ src/backends/x11/meta-input-settings-x11.c | 274 +++++++++++++++++++++
1 file changed, 275 insertions(+) 1 file changed, 274 insertions(+)
diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c
index 96390285a6..0631fd2fee 100644 index 371e2f60e..426056390 100644
--- a/src/backends/x11/meta-input-settings-x11.c --- a/src/backends/x11/meta-input-settings-x11.c
+++ b/src/backends/x11/meta-input-settings-x11.c +++ b/src/backends/x11/meta-input-settings-x11.c
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
@ -21,7 +21,7 @@ index 96390285a6..0631fd2fee 100644
#include <string.h> #include <string.h>
#include <X11/Xatom.h> #include <X11/Xatom.h>
#include <X11/extensions/XInput2.h> #include <X11/extensions/XInput2.h>
@@ -165,6 +166,184 @@ change_property (ClutterInputDevice *device, @@ -165,6 +166,183 @@ change_property (ClutterInputDevice *device,
meta_XFree (data_ret); meta_XFree (data_ret);
} }
@ -45,7 +45,6 @@ index 96390285a6..0631fd2fee 100644
+ gboolean left_handed) + gboolean left_handed)
+{ +{
+ MetaDisplay *display = meta_get_display (); + MetaDisplay *display = meta_get_display ();
+ MetaX11Display *x11_display = display ? display->x11_display : NULL;
+ MetaBackend *backend = meta_get_backend (); + MetaBackend *backend = meta_get_backend ();
+ Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)); + Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend));
+ int device_id; + int device_id;
@ -71,8 +70,7 @@ index 96390285a6..0631fd2fee 100644
+ XA_INTEGER, 8, tap_action, 7); + XA_INTEGER, 8, tap_action, 7);
+ meta_XFree (tap_action); + meta_XFree (tap_action);
+ +
+ if (x11_display) + clutter_x11_trap_x_errors();
+ meta_x11_error_trap_push (x11_display);
+ buttons = g_new (guchar, buttons_capacity); + buttons = g_new (guchar, buttons_capacity);
+ n_buttons = XGetDeviceButtonMapping (xdisplay, xdevice, + n_buttons = XGetDeviceButtonMapping (xdisplay, xdevice,
+ buttons, buttons_capacity); + buttons, buttons_capacity);
@ -92,7 +90,7 @@ index 96390285a6..0631fd2fee 100644
+ XSetDeviceButtonMapping (xdisplay, xdevice, buttons, n_buttons); + XSetDeviceButtonMapping (xdisplay, xdevice, buttons, n_buttons);
+ g_free (buttons); + g_free (buttons);
+ +
+ if (x11_display && meta_x11_error_trap_pop_with_return (x11_display)) + if (clutter_x11_untrap_x_errors())
+ { + {
+ g_warning ("Could not set synaptics touchpad left-handed for %s", + g_warning ("Could not set synaptics touchpad left-handed for %s",
+ clutter_input_device_get_device_name (device)); + clutter_input_device_get_device_name (device));
@ -107,7 +105,6 @@ index 96390285a6..0631fd2fee 100644
+ gdouble speed) + gdouble speed)
+{ +{
+ MetaDisplay *display = meta_get_display (); + MetaDisplay *display = meta_get_display ();
+ MetaX11Display *x11_display = display ? display->x11_display : NULL;
+ MetaBackend *backend = meta_get_backend (); + MetaBackend *backend = meta_get_backend ();
+ Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)); + Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend));
+ int device_id; + int device_id;
@ -122,7 +119,10 @@ index 96390285a6..0631fd2fee 100644
+ if (!xdevice) + if (!xdevice)
+ return; + return;
+ /* Get the list of feedbacks for the device */ + /* Get the list of feedbacks for the device */
+ clutter_x11_trap_x_errors();
+ states = XGetFeedbackControl (xdisplay, xdevice, &num_feedbacks); + states = XGetFeedbackControl (xdisplay, xdevice, &num_feedbacks);
+ if (clutter_x11_untrap_x_errors())
+ return;
+ if (!states) + if (!states)
+ return; + return;
+ +
@ -167,8 +167,7 @@ index 96390285a6..0631fd2fee 100644
+ denominator = -1; + denominator = -1;
+ } + }
+ +
+ if (x11_display) + clutter_x11_trap_x_errors();
+ meta_x11_error_trap_push (x11_display);
+ +
+ state = (XFeedbackState *) states; + state = (XFeedbackState *) states;
+ +
@ -193,7 +192,7 @@ index 96390285a6..0631fd2fee 100644
+ state = (XFeedbackState *) ((char *) state + state->length); + state = (XFeedbackState *) ((char *) state + state->length);
+ } + }
+ +
+ if (x11_display && meta_x11_error_trap_pop_with_return (x11_display)) + if (clutter_x11_untrap_x_errors())
+ { + {
+ g_warning ("Could not set synaptics touchpad acceleration for %s", + g_warning ("Could not set synaptics touchpad acceleration for %s",
+ clutter_input_device_get_device_name (device)); + clutter_input_device_get_device_name (device));
@ -206,7 +205,7 @@ index 96390285a6..0631fd2fee 100644
static void static void
meta_input_settings_x11_set_send_events (MetaInputSettings *settings, meta_input_settings_x11_set_send_events (MetaInputSettings *settings,
ClutterInputDevice *device, ClutterInputDevice *device,
@@ -173,6 +352,13 @@ meta_input_settings_x11_set_send_events (MetaInputSettings *settings, @@ -173,6 +351,13 @@ meta_input_settings_x11_set_send_events (MetaInputSettings *settings,
guchar values[2] = { 0 }; /* disabled, disabled-on-external-mouse */ guchar values[2] = { 0 }; /* disabled, disabled-on-external-mouse */
guchar *available; guchar *available;
@ -220,7 +219,7 @@ index 96390285a6..0631fd2fee 100644
available = get_property (device, "libinput Send Events Modes Available", available = get_property (device, "libinput Send Events Modes Available",
XA_INTEGER, 8, 2); XA_INTEGER, 8, 2);
if (!available) if (!available)
@@ -225,6 +411,12 @@ meta_input_settings_x11_set_speed (MetaInputSettings *settings, @@ -225,6 +410,12 @@ meta_input_settings_x11_set_speed (MetaInputSettings *settings,
Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)); Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend));
gfloat value = speed; gfloat value = speed;
@ -233,7 +232,7 @@ index 96390285a6..0631fd2fee 100644
change_property (device, "libinput Accel Speed", change_property (device, "libinput Accel Speed",
XInternAtom (xdisplay, "FLOAT", False), XInternAtom (xdisplay, "FLOAT", False),
32, &value, 1); 32, &value, 1);
@@ -251,6 +443,19 @@ meta_input_settings_x11_set_left_handed (MetaInputSettings *settings, @@ -251,6 +442,19 @@ meta_input_settings_x11_set_left_handed (MetaInputSettings *settings,
else else
{ {
value = enabled ? 1 : 0; value = enabled ? 1 : 0;
@ -253,7 +252,7 @@ index 96390285a6..0631fd2fee 100644
change_property (device, "libinput Left Handed Enabled", change_property (device, "libinput Left Handed Enabled",
XA_INTEGER, 8, &value, 1); XA_INTEGER, 8, &value, 1);
} }
@@ -274,6 +479,20 @@ meta_input_settings_x11_set_tap_enabled (MetaInputSettings *settings, @@ -274,6 +478,20 @@ meta_input_settings_x11_set_tap_enabled (MetaInputSettings *settings,
{ {
guchar value = (enabled) ? 1 : 0; guchar value = (enabled) ? 1 : 0;
@ -274,7 +273,7 @@ index 96390285a6..0631fd2fee 100644
change_property (device, "libinput Tapping Enabled", change_property (device, "libinput Tapping Enabled",
XA_INTEGER, 8, &value, 1); XA_INTEGER, 8, &value, 1);
} }
@@ -307,6 +526,27 @@ meta_input_settings_x11_set_invert_scroll (MetaInputSettings *settings, @@ -307,6 +525,27 @@ meta_input_settings_x11_set_invert_scroll (MetaInputSettings *settings,
{ {
guchar value = (inverted) ? 1 : 0; guchar value = (inverted) ? 1 : 0;
@ -302,7 +301,7 @@ index 96390285a6..0631fd2fee 100644
change_property (device, "libinput Natural Scrolling Enabled", change_property (device, "libinput Natural Scrolling Enabled",
XA_INTEGER, 8, &value, 1); XA_INTEGER, 8, &value, 1);
} }
@@ -320,6 +560,41 @@ change_scroll_method (ClutterInputDevice *device, @@ -320,6 +559,41 @@ change_scroll_method (ClutterInputDevice *device,
guchar *current = NULL; guchar *current = NULL;
guchar *available = NULL; guchar *available = NULL;
@ -345,10 +344,10 @@ index 96390285a6..0631fd2fee 100644
XA_INTEGER, 8, SCROLL_METHOD_NUM_FIELDS); XA_INTEGER, 8, SCROLL_METHOD_NUM_FIELDS);
if (!available || !available[method]) if (!available || !available[method])
-- --
2.31.1 2.36.1
From 50c4733acf56b3b67a2706d32f5c455cb51f9458 Mon Sep 17 00:00:00 2001 From 963ff120898e7e42d80d5761753e76adcf16c132 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org> From: Carlos Garnacho <carlosg@gnome.org>
Date: Tue, 13 Feb 2018 11:44:40 +0100 Date: Tue, 13 Feb 2018 11:44:40 +0100
Subject: [PATCH 2/6] clutter: Extend touchpad device property check for Subject: [PATCH 2/6] clutter: Extend touchpad device property check for
@ -361,7 +360,7 @@ to get the device type may fall short.
1 file changed, 15 insertions(+), 2 deletions(-) 1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c
index d43834bd7b..73938e22e0 100644 index d43834bd7..73938e22e 100644
--- a/src/backends/x11/meta-seat-x11.c --- a/src/backends/x11/meta-seat-x11.c
+++ b/src/backends/x11/meta-seat-x11.c +++ b/src/backends/x11/meta-seat-x11.c
@@ -246,7 +246,8 @@ is_touch_device (XIAnyClassInfo **classes, @@ -246,7 +246,8 @@ is_touch_device (XIAnyClassInfo **classes,
@ -403,10 +402,10 @@ index d43834bd7b..73938e22e0 100644
get_device_ids (XIDeviceInfo *info, get_device_ids (XIDeviceInfo *info,
char **vendor_id, char **vendor_id,
-- --
2.31.1 2.36.1
From 307970305d11cdca1b97c53c85bda8b809ff4f0f Mon Sep 17 00:00:00 2001 From 86cc1b46dae01da619980af826eb9bf81cf31143 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com> From: Rui Matos <tiagomatos@gmail.com>
Date: Mon, 9 Oct 2017 18:39:52 +0200 Date: Mon, 9 Oct 2017 18:39:52 +0200
Subject: [PATCH 3/6] backends/x11: Add a synaptics check for two finger scroll Subject: [PATCH 3/6] backends/x11: Add a synaptics check for two finger scroll
@ -421,10 +420,10 @@ isn't.
1 file changed, 11 insertions(+) 1 file changed, 11 insertions(+)
diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c
index 0631fd2fee..2ac080127c 100644 index 426056390..db2b2a4fb 100644
--- a/src/backends/x11/meta-input-settings-x11.c --- a/src/backends/x11/meta-input-settings-x11.c
+++ b/src/backends/x11/meta-input-settings-x11.c +++ b/src/backends/x11/meta-input-settings-x11.c
@@ -638,6 +638,17 @@ meta_input_settings_x11_has_two_finger_scroll (MetaInputSettings *settings, @@ -637,6 +637,17 @@ meta_input_settings_x11_has_two_finger_scroll (MetaInputSettings *settings,
guchar *available = NULL; guchar *available = NULL;
gboolean has_two_finger = TRUE; gboolean has_two_finger = TRUE;
@ -443,10 +442,10 @@ index 0631fd2fee..2ac080127c 100644
XA_INTEGER, 8, SCROLL_METHOD_NUM_FIELDS); XA_INTEGER, 8, SCROLL_METHOD_NUM_FIELDS);
if (!available || !available[SCROLL_METHOD_FIELD_2FG]) if (!available || !available[SCROLL_METHOD_FIELD_2FG])
-- --
2.31.1 2.36.1
From cba31f88ddbfb7355de1daa34397aba8e8607765 Mon Sep 17 00:00:00 2001 From 32e2da07eeb1f9edcf03751285a756ab1acca6a8 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com> From: Rui Matos <tiagomatos@gmail.com>
Date: Mon, 9 Oct 2017 18:55:56 +0200 Date: Mon, 9 Oct 2017 18:55:56 +0200
Subject: [PATCH 4/6] backends/x11: Add disable while typing support for Subject: [PATCH 4/6] backends/x11: Add disable while typing support for
@ -459,7 +458,7 @@ syndaemon when the synaptics driver is being used.
1 file changed, 112 insertions(+) 1 file changed, 112 insertions(+)
diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c
index 2ac080127c..2658b82172 100644 index db2b2a4fb..bf9d769e9 100644
--- a/src/backends/x11/meta-input-settings-x11.c --- a/src/backends/x11/meta-input-settings-x11.c
+++ b/src/backends/x11/meta-input-settings-x11.c +++ b/src/backends/x11/meta-input-settings-x11.c
@@ -35,6 +35,9 @@ @@ -35,6 +35,9 @@
@ -481,7 +480,7 @@ index 2ac080127c..2658b82172 100644
} MetaInputSettingsX11Private; } MetaInputSettingsX11Private;
G_DEFINE_TYPE_WITH_PRIVATE (MetaInputSettingsX11, meta_input_settings_x11, G_DEFINE_TYPE_WITH_PRIVATE (MetaInputSettingsX11, meta_input_settings_x11,
@@ -344,6 +349,107 @@ change_synaptics_speed (ClutterInputDevice *device, @@ -343,6 +348,107 @@ change_synaptics_speed (ClutterInputDevice *device,
XCloseDevice (xdisplay, xdevice); XCloseDevice (xdisplay, xdevice);
} }
@ -589,7 +588,7 @@ index 2ac080127c..2658b82172 100644
static void static void
meta_input_settings_x11_set_send_events (MetaInputSettings *settings, meta_input_settings_x11_set_send_events (MetaInputSettings *settings,
ClutterInputDevice *device, ClutterInputDevice *device,
@@ -468,6 +574,12 @@ meta_input_settings_x11_set_disable_while_typing (MetaInputSettings *settings, @@ -467,6 +573,12 @@ meta_input_settings_x11_set_disable_while_typing (MetaInputSettings *settings,
{ {
guchar value = (enabled) ? 1 : 0; guchar value = (enabled) ? 1 : 0;
@ -603,10 +602,10 @@ index 2ac080127c..2658b82172 100644
XA_INTEGER, 8, &value, 1); XA_INTEGER, 8, &value, 1);
} }
-- --
2.31.1 2.36.1
From 354d34263534d0c7a5c7f7169d8b4a3dba79491c Mon Sep 17 00:00:00 2001 From 6da0bfe86f416d3cfc5cc6993e8e2f6ca255e85a Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org> From: Carlos Garnacho <carlosg@gnome.org>
Date: Wed, 13 Jun 2018 13:48:24 +0200 Date: Wed, 13 Jun 2018 13:48:24 +0200
Subject: [PATCH 5/6] clutter: Only reset scroll axes on slave devices Subject: [PATCH 5/6] clutter: Only reset scroll axes on slave devices
@ -617,7 +616,7 @@ As a plus, unknown source device IDs will just warn instead of crash.
1 file changed, 3 insertions(+), 1 deletion(-) 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c
index 73938e22e0..6d2c7d3740 100644 index 73938e22e..6d2c7d374 100644
--- a/src/backends/x11/meta-seat-x11.c --- a/src/backends/x11/meta-seat-x11.c
+++ b/src/backends/x11/meta-seat-x11.c +++ b/src/backends/x11/meta-seat-x11.c
@@ -2362,7 +2362,9 @@ meta_seat_x11_translate_event (MetaSeatX11 *seat, @@ -2362,7 +2362,9 @@ meta_seat_x11_translate_event (MetaSeatX11 *seat,
@ -632,10 +631,10 @@ index 73938e22e0..6d2c7d3740 100644
clutter_event_set_device (event, device); clutter_event_set_device (event, device);
clutter_event_set_source_device (event, source_device); clutter_event_set_source_device (event, source_device);
-- --
2.31.1 2.36.1
From b7f94b5dd09953d5a4c8aee1b79491d71f8c1e0e Mon Sep 17 00:00:00 2001 From da60cf38c7fcec68f8e79a8a3a174e551c07a64a Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com> From: Rui Matos <tiagomatos@gmail.com>
Date: Tue, 10 Oct 2017 19:07:27 +0200 Date: Tue, 10 Oct 2017 19:07:27 +0200
Subject: [PATCH 6/6] backends/x11: Support plain old X device configuration Subject: [PATCH 6/6] backends/x11: Support plain old X device configuration
@ -647,10 +646,10 @@ bits specific for xorg-x11-drv-evdev devices.
1 file changed, 75 insertions(+), 23 deletions(-) 1 file changed, 75 insertions(+), 23 deletions(-)
diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c diff --git a/src/backends/x11/meta-input-settings-x11.c b/src/backends/x11/meta-input-settings-x11.c
index 2658b82172..80bc33c6b5 100644 index bf9d769e9..49dcb74f1 100644
--- a/src/backends/x11/meta-input-settings-x11.c --- a/src/backends/x11/meta-input-settings-x11.c
+++ b/src/backends/x11/meta-input-settings-x11.c +++ b/src/backends/x11/meta-input-settings-x11.c
@@ -185,10 +185,23 @@ is_device_synaptics (ClutterInputDevice *device) @@ -185,17 +185,30 @@ is_device_synaptics (ClutterInputDevice *device)
return TRUE; return TRUE;
} }
@ -676,8 +675,7 @@ index 2658b82172..80bc33c6b5 100644
+ gboolean left_handed) + gboolean left_handed)
{ {
MetaDisplay *display = meta_get_display (); MetaDisplay *display = meta_get_display ();
MetaX11Display *x11_display = display ? display->x11_display : NULL; MetaBackend *backend = meta_get_backend ();
@@ -196,7 +209,7 @@ change_synaptics_tap_left_handed (ClutterInputDevice *device,
Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)); Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend));
int device_id; int device_id;
XDevice *xdevice; XDevice *xdevice;
@ -686,7 +684,7 @@ index 2658b82172..80bc33c6b5 100644
guint buttons_capacity = 16, n_buttons; guint buttons_capacity = 16, n_buttons;
device_id = meta_input_device_x11_get_device_id (device); device_id = meta_input_device_x11_get_device_id (device);
@@ -204,19 +217,6 @@ change_synaptics_tap_left_handed (ClutterInputDevice *device, @@ -203,19 +216,6 @@ change_synaptics_tap_left_handed (ClutterInputDevice *device,
if (!xdevice) if (!xdevice)
return; return;
@ -703,12 +701,12 @@ index 2658b82172..80bc33c6b5 100644
- XA_INTEGER, 8, tap_action, 7); - XA_INTEGER, 8, tap_action, 7);
- meta_XFree (tap_action); - meta_XFree (tap_action);
- -
if (x11_display) clutter_x11_trap_x_errors();
meta_x11_error_trap_push (x11_display);
buttons = g_new (guchar, buttons_capacity); buttons = g_new (guchar, buttons_capacity);
@@ -240,17 +240,39 @@ change_synaptics_tap_left_handed (ClutterInputDevice *device, n_buttons = XGetDeviceButtonMapping (xdisplay, xdevice,
@@ -238,17 +238,39 @@ change_synaptics_tap_left_handed (ClutterInputDevice *device,
if (x11_display && meta_x11_error_trap_pop_with_return (x11_display)) if (clutter_x11_untrap_x_errors())
{ {
- g_warning ("Could not set synaptics touchpad left-handed for %s", - g_warning ("Could not set synaptics touchpad left-handed for %s",
+ g_warning ("Could not set left-handed for %s", + g_warning ("Could not set left-handed for %s",
@ -749,8 +747,8 @@ index 2658b82172..80bc33c6b5 100644
+ gdouble speed) + gdouble speed)
{ {
MetaDisplay *display = meta_get_display (); MetaDisplay *display = meta_get_display ();
MetaX11Display *x11_display = display ? display->x11_display : NULL; MetaBackend *backend = meta_get_backend ();
@@ -349,6 +371,23 @@ change_synaptics_speed (ClutterInputDevice *device, @@ -348,6 +370,23 @@ change_synaptics_speed (ClutterInputDevice *device,
XCloseDevice (xdisplay, xdevice); XCloseDevice (xdisplay, xdevice);
} }
@ -774,7 +772,7 @@ index 2658b82172..80bc33c6b5 100644
/* Ensure that syndaemon dies together with us, to avoid running several of /* Ensure that syndaemon dies together with us, to avoid running several of
* them */ * them */
static void static void
@@ -517,9 +556,10 @@ meta_input_settings_x11_set_speed (MetaInputSettings *settings, @@ -516,9 +555,10 @@ meta_input_settings_x11_set_speed (MetaInputSettings *settings,
Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)); Display *xdisplay = meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend));
gfloat value = speed; gfloat value = speed;
@ -787,7 +785,7 @@ index 2658b82172..80bc33c6b5 100644
return; return;
} }
@@ -561,6 +601,11 @@ meta_input_settings_x11_set_left_handed (MetaInputSettings *settings, @@ -560,6 +600,11 @@ meta_input_settings_x11_set_left_handed (MetaInputSettings *settings,
g_object_unref (settings); g_object_unref (settings);
return; return;
} }
@ -799,7 +797,7 @@ index 2658b82172..80bc33c6b5 100644
change_property (device, "libinput Left Handed Enabled", change_property (device, "libinput Left Handed Enabled",
XA_INTEGER, 8, &value, 1); XA_INTEGER, 8, &value, 1);
@@ -778,7 +823,14 @@ meta_input_settings_x11_set_scroll_button (MetaInputSettings *settings, @@ -777,7 +822,14 @@ meta_input_settings_x11_set_scroll_button (MetaInputSettings *settings,
{ {
gchar lock = button_lock; gchar lock = button_lock;
@ -815,5 +813,5 @@ index 2658b82172..80bc33c6b5 100644
XA_CARDINAL, 32, &button, 1); XA_CARDINAL, 32, &button, 1);
change_property (device, "libinput Button Scrolling Button Lock Enabled", change_property (device, "libinput Button Scrolling Button Lock Enabled",
-- --
2.31.1 2.36.1

View File

@ -10,7 +10,7 @@
Name: mutter Name: mutter
Version: 40.9 Version: 40.9
Release: 9%{?dist} Release: 14%{?dist}
Summary: Window and compositing manager based on Clutter Summary: Window and compositing manager based on Clutter
License: GPLv2+ License: GPLv2+
@ -101,6 +101,16 @@ Patch40: 0001-events-Pass-CurrentTime-to-XIAllowEvents-when-unfree.patch
# Backport night light availability property (#2057154) # Backport night light availability property (#2057154)
Patch41: 0001-monitor-manager-Add-NightLightSupported-property-to-.patch Patch41: 0001-monitor-manager-Add-NightLightSupported-property-to-.patch
# Don't add common modes if panel already has (#2125032)
Patch42: 0001-output-kms-Add-more-heuristics-to-decide-when-to-off.patch
Patch43: 0002-output-kms-Don-t-attemp-to-add-common-modes-on-conne.patch
Patch44: 0001-backends-Only-apply-EDID-based-tablet-mapping-heuris.patch
# Allow starting headless again (#2116363)
Patch45: 0001-gpu-kms-Report-that-we-can-have-outputs-if-we-have-c.patch
Patch46: 0001-clutter-text-Don-t-query-preferred-size-without-allo.patch
BuildRequires: chrpath BuildRequires: chrpath
BuildRequires: pango-devel BuildRequires: pango-devel
BuildRequires: startup-notification-devel BuildRequires: startup-notification-devel
@ -191,6 +201,7 @@ behaviors to meet the needs of the environment.
%package devel %package devel
Summary: Development package for %{name} Summary: Development package for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: mesa-libEGL-devel
%description devel %description devel
Header files and libraries for developing Mutter plugins. Also includes Header files and libraries for developing Mutter plugins. Also includes
@ -247,6 +258,26 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
%{_datadir}/mutter-%{mutter_api_version}/tests %{_datadir}/mutter-%{mutter_api_version}/tests
%changelog %changelog
* Wed Feb 01 2023 Jonas Ådahl <jadahl@redhat.com>) - 40.9-14
- Allow starting headless again
Resolves: #2116363
* Tue Jan 03 2023 Carlos Garnacho <cgarnach@redhat.com>) - 40.9-13
- Do not apply EDID mapping heuristics to non-integrated tablets
Resolves: #2047341
* Tue Dec 06 2022 Jonas Ådahl <jadahl@redhat.com>) - 40.9-12
- Add missing dependency for mutter-devel
Resolves: #2004832
* Tue Dec 06 2022 Olivier Fourdan <ofourdan@redhat.com> - 40.9-11
- Fix downstream synaptics patches breaking xdmcp
Resolves: #2092452
* Thu Oct 20 2022 Jonas Ådahl <jadahl@redhat.com>) - 40.9-10
- Don't add common modes if panel already has
Resolves: #2125032
* Tue Aug 16 2022 Jonas Ådahl <jadahl@redhat.com>) - 40.9-9 * Tue Aug 16 2022 Jonas Ådahl <jadahl@redhat.com>) - 40.9-9
- Backport night light availability property - Backport night light availability property
Resolves: #2057154 Resolves: #2057154
@ -315,7 +346,7 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
- Fixes a race in wl_seat capabilities - Fixes a race in wl_seat capabilities
Resolves: #2003032 Resolves: #2003032
* Wed Aug 27 2021 Florian Müllner <fmuellner@redhat.com> - 40.4-2 * Fri Aug 27 2021 Florian Müllner <fmuellner@redhat.com> - 40.4-2
- Remove firstboot(windowmanager) provide - Remove firstboot(windowmanager) provide
Resolves: #1975355 Resolves: #1975355