backends: Use MetaViewportInfo to keep MetaSeatNative informed of layout
Use this for the calculations to keep absolute motion properly constrained, and relative motion properly scaled. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403>
This commit is contained in:

committed by
Marge Bot

parent
0c1d48bd08
commit
727e64dddf
@ -145,6 +145,21 @@ maybe_disable_screen_cast_dma_bufs (MetaBackendNative *native)
|
||||
}
|
||||
#endif /* HAVE_REMOTE_DESKTOP */
|
||||
|
||||
static void
|
||||
update_viewports (MetaBackend *backend)
|
||||
{
|
||||
MetaMonitorManager *monitor_manager =
|
||||
meta_backend_get_monitor_manager (backend);
|
||||
ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend);
|
||||
MetaSeatNative *seat =
|
||||
META_SEAT_NATIVE (clutter_backend_get_default_seat (clutter_backend));
|
||||
MetaViewportInfo *viewports;
|
||||
|
||||
viewports = meta_monitor_manager_get_viewports (monitor_manager);
|
||||
meta_seat_native_set_viewports (seat, viewports);
|
||||
g_object_unref (viewports);
|
||||
}
|
||||
|
||||
static void
|
||||
meta_backend_native_post_init (MetaBackend *backend)
|
||||
{
|
||||
@ -170,6 +185,8 @@ meta_backend_native_post_init (MetaBackend *backend)
|
||||
maybe_disable_screen_cast_dma_bufs (META_BACKEND_NATIVE (backend));
|
||||
#endif
|
||||
|
||||
update_viewports (backend);
|
||||
|
||||
#ifdef HAVE_WAYLAND
|
||||
meta_backend_init_wayland (backend);
|
||||
#endif
|
||||
@ -179,9 +196,15 @@ static MetaMonitorManager *
|
||||
meta_backend_native_create_monitor_manager (MetaBackend *backend,
|
||||
GError **error)
|
||||
{
|
||||
return g_initable_new (META_TYPE_MONITOR_MANAGER_KMS, NULL, error,
|
||||
"backend", backend,
|
||||
NULL);
|
||||
MetaMonitorManager *manager;
|
||||
|
||||
manager = g_initable_new (META_TYPE_MONITOR_MANAGER_KMS, NULL, error,
|
||||
"backend", backend,
|
||||
NULL);
|
||||
g_signal_connect_swapped (manager, "monitors-changed-internal",
|
||||
G_CALLBACK (update_viewports), backend);
|
||||
|
||||
return manager;
|
||||
}
|
||||
|
||||
static MetaCursorRenderer *
|
||||
|
Reference in New Issue
Block a user