mutter/src
Jonas Dreßler c4fa30ac7d backends/native: Fix relative motion calculation if monitor isn't found
The method `relative_motion_across_outputs` is used to adjust the
distance/delta of a mouse movement across multiple monitors to take the
different scale factors of those monitors into account. This works by
getting the adjacent monitors that the movement-line/vector intersects
with and adjusting the final position (or end point of the
movement-line) by multiplying the parts of the line spanning across
different monitors with the scale factors of those monitors.

In the end of this calculation, we always want to set the new end
coordinates of the relative motion to the new end coordinates of the
adjusted movement-line. We currently only do that if all adjacent
monitors the line is crossing actually exist, because only then we end
up inside the "We reached the dest logical monitor" else-block and set
`x` and `y` to the correct values. Fix that and make sure the returned
values are also correct in case an adjacent monitor doesn't exist by
adding separate `target_x` and `target_y` variables which we update during
each pass of the while loop so we're always prepared for the while loop
exiting before the destination monitor was found.

Thanks to Axel Kittenberger for reporting the initial bug and tracking
the issue down to `relative_motion_across_outputs`.

Fixes https://gitlab.gnome.org/GNOME/mutter/issues/774
2020-01-07 20:18:46 +00:00
..
backends backends/native: Fix relative motion calculation if monitor isn't found 2020-01-07 20:18:46 +00:00
compositor window-actor: Also cull out clip_region 2020-01-06 13:38:23 +00:00
core wayland: Let MetaWaylandXdgPopup dismiss incorrectly placed popups 2019-12-09 10:09:40 +01:00
meta window/wayland: Use G_DECLARE_FINAL_TYPE 2019-12-09 10:09:40 +01:00
tests clutter, core: Stop using the Cogl framebuffer stack 2019-12-03 19:02:14 +00:00
ui theme: Plug GdkPixbuf leak 2020-01-06 19:54:00 +00:00
wayland xwayland: Don't queue frame callbacks when role assigned 2019-12-10 09:15:49 +00:00
x11 x11-selection: Plug MetaX11SelectionOutputStream leak 2020-01-06 19:54:00 +00:00
libmutter.pc.in build: Fix libs and cflags in autotools .pc file 2018-11-10 16:20:46 +00:00
meson.build wayland: Rework asynchronous window configuration 2019-12-09 10:09:40 +01:00
meta-marshal.list cursor-tracker: Use our own marshal for cursor-moved 2019-07-31 09:34:17 +00:00
org.freedesktop.login1.xml MetaLauncher: Don't g_error() on failure 2015-11-06 17:03:59 -05:00
org.gnome.Mutter.DisplayConfig.xml fixed typo 2018-07-24 13:16:36 +00:00
org.gnome.Mutter.IdleMonitor.xml idle-monitor: Add ResetIdletime API, for testing purposes 2018-04-16 13:28:03 +02:00
org.gnome.Mutter.RemoteDesktop.xml Fix typo in RemoteDesktop dbus api 2019-05-22 16:21:57 +02:00
org.gnome.Mutter.ScreenCast.xml org.gnome.Mutter.ScreenCast: Document what was added in API version 2 2019-02-26 13:39:11 +00:00