forked from AuroraMiddleware/gtk
wayland: Update cursor surface scale when output scale changes
Also update the cursor surfaces of every seat when an output changes scale. This could for example happen when a monitor scale is changed via Settings.
This commit is contained in:
parent
cbbb7604b6
commit
dfd1372a9b
@ -4516,6 +4516,12 @@ pointer_surface_update_scale (GdkDevice *device)
|
||||
gdk_wayland_device_update_surface_cursor (device);
|
||||
}
|
||||
|
||||
void
|
||||
gdk_wayland_seat_update_cursor_scale (GdkWaylandSeat *seat)
|
||||
{
|
||||
pointer_surface_update_scale (seat->master_pointer);
|
||||
}
|
||||
|
||||
static void
|
||||
pointer_surface_enter (void *data,
|
||||
struct wl_surface *wl_surface,
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "gdkdisplay.h"
|
||||
#include "gdkdisplay-wayland.h"
|
||||
#include "gdkmonitor-wayland.h"
|
||||
#include "gdkseat-wayland.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkdeviceprivate.h"
|
||||
#include "gdkkeysprivate.h"
|
||||
@ -1871,9 +1872,20 @@ transform_to_string (int transform)
|
||||
static void
|
||||
update_scale (GdkDisplay *display)
|
||||
{
|
||||
GList *seats;
|
||||
GList *l;
|
||||
|
||||
g_list_foreach (gdk_wayland_display_get_toplevel_surfaces (display),
|
||||
(GFunc)gdk_wayland_surface_update_scale,
|
||||
NULL);
|
||||
seats = gdk_display_list_seats (display);
|
||||
for (l = seats; l; l = l->next)
|
||||
{
|
||||
GdkSeat *seat = l->data;
|
||||
|
||||
gdk_wayland_seat_update_cursor_scale (GDK_WAYLAND_SEAT (seat));
|
||||
}
|
||||
g_list_free (seats);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -41,4 +41,6 @@ struct _GdkWaylandSeatClass
|
||||
|
||||
GType gdk_wayland_seat_get_type (void) G_GNUC_CONST;
|
||||
|
||||
void gdk_wayland_seat_update_cursor_scale (GdkWaylandSeat *seat);
|
||||
|
||||
#endif /* __GDK_WAYLAND_SEAT_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user