mutter:wip/smcv/42-rpath

Last commit made on 2022-08-18
Get this branch:
git clone -b wip/smcv/42-rpath https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
wip/smcv/42-rpath
Repository:
lp:mutter

Recent commits

5955b7d... by Simon McVittie

tests: Give mutter-test-runner the RUNPATH to find Clutter

Until recently, mutter-test-runner called into libraries that
indirectly depend on (mutter's fork of) Clutter, but did not actually
call into Clutter itself. Commit 1bf70334 "tests/runner: Make test
runner use the headless backend" gave it a direct call into Clutter,
which means the runtime linker will fail unless the executable's
RUNPATH is sufficient to find Clutter.

For future-proofing, do the same for the other test executables.

Resolves: https://gitlab.gnome.org/GNOME/mutter/-/issues/2389
Signed-off-by: Simon McVittie <email address hidden>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2580>

29e7d23... by Steev Klimaszewski <email address hidden>

Update meta connector types enum

This adds the 4 new connector types that mutter didn't know about from
drm_mode.h in the kernel.

Noticed because mutter kept crashing when plugging in a USB-C adapter to
use an external monitor.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2577>

(cherry picked from commit 642791673c345bd1432f97d6b7c5e4632e01f2fd)

63a0592... by Zurab Kargareteli <email address hidden>

Update Georgian translation

aadce21... by Carlos Garnacho

wayland: Fix thinko in paired tablet loop filter

This condition is inverted of how it should be. Since pad focus relies
on grouped devices lookups (e.g. pads not grouped with a tablet do not
focus surfaces), this fixes issues in pad focus and event propagation to
wayland clients.

Fixes: fff3654941 - wayland: Check input device capabilities in tablet seats

(cherry-picked from commit 3dbc62eec29f52b3deb364a4545b29a5eec9cc18)

d1b2093... by Carlos Garnacho

backend: Fix cursor visibility on X11 with only tablets as input

Since tablets on X11 drive the Virtual Core Pointer as every other
pointing device, we should consider it as a pointer device when
determining whether the pointer cursor should be visible.

Fixes the cursor being hidden if there are only tablets for input.

(cherry-picked from commit 633635d608dbc503f73c5425dec8015bfdcae637)

9a25838... by =?utf-8?q?Florian_M=C3=BCllner?= <email address hidden>

Bump version to 42.4

Update NEWS.

51b4faf... by Sebastian Keller <email address hidden>

pointer-constraints/native: Fix borders array memory leaks

The borders arrays were not (fully) freed when going out of scope.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2337
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2497>
(cherry picked from commit fe0a383d6ffc47d5a29376b392c8f2afc51dc588)

389e461... by Jonas Ådahl

tests: Test hotplugs when having unmapped Wayland window

This checks that an unmapped but created Wayland window correctly handle
monitor changes. This is specifically added to test an edge case causing
a crash with the following backtrace:

```
  ...
   4) 0x00007ffff78a2a6b in g_assertion_message_expr ()
   5) 0x00007ffff7defd5b in meta_window_update_for_monitors_changed () at ../src/core/window.c:3745
   6) 0x00007ffff7899758 in g_slist_foreach () at ../glib/gslist.c:885
   7) 0x00007ffff7dbe562 in meta_display_foreach_window () at ../src/core/display.c:3185
   8) 0x00007ffff7dbe5fd in on_monitors_changed_internal () at ../src/core/display.c:3210
   9) 0x00007ffff796f4ff in g_closure_invoke () at ../gobject/gclosure.c:830
  10) 0x00007ffff7981316 in signal_emit_unlocked_R () at ../gobject/gsignal.c:3740
  11) 0x00007ffff7987699 in g_signal_emit_valist () at ../gobject/gsignal.c:3495
  12) 0x00007ffff7987bc2 in g_signal_emit () at ../gobject/gsignal.c:3551
  13) 0x00007ffff7d89915 in meta_monitor_manager_notify_monitors_changed () at ../src/backends/meta-monitor-manager.c:3517
  ...
```

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2554>

16ac956... by Jonas Ådahl

window/wayland: Always update the monitor when updating

If the window didn't have a size, it would still have a monitor, and
when we are asked to update, we must update, as the old monitor might
not be kept around, leaving us vulnerable to use after free.

Avoid not updating the monitor by using the stored IDs (preferred, or
previous) to find suitable logical monitors, with the primary monitor
being the last fallback unless we're completely headless.

This fixes the assert

  !window->monitor ||
  g_list_find (meta_monitor_manager_get_logical_monitors (monitor_manager),
               window->monitor)

in meta_window_update_for_monitors_changed() being hit when a Wayland
window has been created, but not mapped, when a hotplug happens.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2554>

ab1adc2... by Jonas Ådahl

window: Add monitor finder using stored IDs

This will be used to find new monitors on e.g. "winsys ID" of previous
monitors.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2554>