[mutter] backends/native: Update cursor also when scaled or transformed
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] backends/native: Update cursor also when scaled or transformed
- Date: Thu, 21 Apr 2022 11:53:00 +0000 (UTC)
commit 43ae37a93ee862d2a3770a1ba5be0e1dcbc18751
Author: Sebastian Wick <sebastian wick redhat com>
Date: Wed Apr 13 16:32:35 2022 +0200
backends/native: Update cursor also when scaled or transformed
MetaCursorRendererNative only updates the cursor state when the
underlying texture changes. The cursor scale and transform do not
trigger updates. This results in wrong cursor orientations on rotated
displays. Use both texture changes and scale and transformation changes
to figure out when to update the cursor state.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2363>
src/backends/native/meta-cursor-renderer-native.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/native/meta-cursor-renderer-native.c
b/src/backends/native/meta-cursor-renderer-native.c
index c969743246..0eada201c1 100644
--- a/src/backends/native/meta-cursor-renderer-native.c
+++ b/src/backends/native/meta-cursor-renderer-native.c
@@ -159,6 +159,10 @@ ensure_cursor_priv (MetaCursorSprite *cursor_sprite);
static MetaCursorNativePrivate *
get_cursor_priv (MetaCursorSprite *cursor_sprite);
+static gboolean
+is_cursor_scale_and_transform_valid (MetaCursorRenderer *renderer,
+ MetaCursorSprite *cursor_sprite);
+
static MetaCursorRendererNativeGpuData *
meta_cursor_renderer_native_gpu_data_from_gpu (MetaGpuKms *gpu_kms)
{
@@ -1069,10 +1073,12 @@ meta_cursor_renderer_native_update_cursor (MetaCursorRenderer *renderer,
{
gboolean realized;
+ ensure_cursor_priv (cursor_sprite);
realized = meta_cursor_sprite_realize_texture (cursor_sprite);
gpus = calculate_cursor_sprite_gpus (renderer, cursor_sprite);
- if (realized)
+ if (realized ||
+ !is_cursor_scale_and_transform_valid (renderer, cursor_sprite))
realize_cursor_sprite (renderer, cursor_sprite, gpus);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]