wayland: Always use logical pixels for bounds
This fixes that with scale-monitor-framebuffer disabled, windows were always configured with bounds using physical instead of logical pixels. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3269 Co-authored-by: Jonas Ådahl <jadahl@gmail.com> Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3698>
This commit is contained in:
parent
454a70cce5
commit
d36afd32d7
@ -100,14 +100,15 @@ meta_wayland_window_configuration_new_relative (MetaWindow *window,
|
|||||||
|
|
||||||
MetaWaylandWindowConfiguration *
|
MetaWaylandWindowConfiguration *
|
||||||
meta_wayland_window_configuration_new_empty (int bounds_width,
|
meta_wayland_window_configuration_new_empty (int bounds_width,
|
||||||
int bounds_height)
|
int bounds_height,
|
||||||
|
int scale)
|
||||||
{
|
{
|
||||||
MetaWaylandWindowConfiguration *configuration;
|
MetaWaylandWindowConfiguration *configuration;
|
||||||
|
|
||||||
configuration = g_new0 (MetaWaylandWindowConfiguration, 1);
|
configuration = g_new0 (MetaWaylandWindowConfiguration, 1);
|
||||||
*configuration = (MetaWaylandWindowConfiguration) {
|
*configuration = (MetaWaylandWindowConfiguration) {
|
||||||
.serial = ++global_serial_counter,
|
.serial = ++global_serial_counter,
|
||||||
.scale = 1,
|
.scale = scale,
|
||||||
.bounds_width = bounds_width,
|
.bounds_width = bounds_width,
|
||||||
.bounds_height = bounds_height,
|
.bounds_height = bounds_height,
|
||||||
};
|
};
|
||||||
|
@ -68,6 +68,7 @@ MetaWaylandWindowConfiguration * meta_wayland_window_configuration_new_relative
|
|||||||
int scale);
|
int scale);
|
||||||
|
|
||||||
MetaWaylandWindowConfiguration * meta_wayland_window_configuration_new_empty (int bounds_width,
|
MetaWaylandWindowConfiguration * meta_wayland_window_configuration_new_empty (int bounds_width,
|
||||||
int bounds_height);
|
int bounds_height,
|
||||||
|
int scale);
|
||||||
|
|
||||||
void meta_wayland_window_configuration_free (MetaWaylandWindowConfiguration *configuration);
|
void meta_wayland_window_configuration_free (MetaWaylandWindowConfiguration *configuration);
|
||||||
|
@ -869,6 +869,9 @@ meta_wayland_xdg_toplevel_apply_state (MetaWaylandSurfaceRole *surface_role,
|
|||||||
MetaWaylandWindowConfiguration *configuration;
|
MetaWaylandWindowConfiguration *configuration;
|
||||||
int bounds_width;
|
int bounds_width;
|
||||||
int bounds_height;
|
int bounds_height;
|
||||||
|
int geometry_scale;
|
||||||
|
|
||||||
|
geometry_scale = meta_window_wayland_get_geometry_scale (window);
|
||||||
|
|
||||||
if (!meta_window_calculate_bounds (window, &bounds_width, &bounds_height))
|
if (!meta_window_calculate_bounds (window, &bounds_width, &bounds_height))
|
||||||
{
|
{
|
||||||
@ -878,7 +881,8 @@ meta_wayland_xdg_toplevel_apply_state (MetaWaylandSurfaceRole *surface_role,
|
|||||||
|
|
||||||
configuration =
|
configuration =
|
||||||
meta_wayland_window_configuration_new_empty (bounds_width,
|
meta_wayland_window_configuration_new_empty (bounds_width,
|
||||||
bounds_height);
|
bounds_height,
|
||||||
|
geometry_scale);
|
||||||
meta_wayland_xdg_toplevel_send_configure (xdg_toplevel, configuration);
|
meta_wayland_xdg_toplevel_send_configure (xdg_toplevel, configuration);
|
||||||
meta_wayland_window_configuration_free (configuration);
|
meta_wayland_window_configuration_free (configuration);
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user