mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-12 13:30:19 +00:00
gdk/wayland: Take transform into account when setting physical size
Width and height of a GdkMonitor are derived via wl_output which talks about physical dimensions of a device and compositors usually implement this as the untransformed values (e.g. weston, wlroots). Since the GTK client has no way to figure out if a monitor was rotated, transform the physical dimensions according to the applied wayland transform to have the physical dimensions match the logical ones. Mutter flips the physical dimensions itself but doesn't announce the transform so this shouldn't break anything there.
This commit is contained in:
parent
65017a0031
commit
e40c869d0d
@ -2380,7 +2380,21 @@ output_handle_geometry (void *data,
|
||||
|
||||
monitor->x = x;
|
||||
monitor->y = y;
|
||||
gdk_monitor_set_physical_size (GDK_MONITOR (monitor), physical_width, physical_height);
|
||||
|
||||
switch (transform)
|
||||
{
|
||||
case WL_OUTPUT_TRANSFORM_90:
|
||||
case WL_OUTPUT_TRANSFORM_270:
|
||||
case WL_OUTPUT_TRANSFORM_FLIPPED_90:
|
||||
case WL_OUTPUT_TRANSFORM_FLIPPED_270:
|
||||
gdk_monitor_set_physical_size (GDK_MONITOR (monitor),
|
||||
physical_height, physical_width);
|
||||
break;
|
||||
default:
|
||||
gdk_monitor_set_physical_size (GDK_MONITOR (monitor),
|
||||
physical_width, physical_height);
|
||||
}
|
||||
|
||||
gdk_monitor_set_subpixel_layout (GDK_MONITOR (monitor), subpixel);
|
||||
gdk_monitor_set_manufacturer (GDK_MONITOR (monitor), make);
|
||||
gdk_monitor_set_model (GDK_MONITOR (monitor), model);
|
||||
|
Loading…
Reference in New Issue
Block a user