This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch wl/browser-all
in repository enlightenment.
View the commit online.
commit 14dcb5adbd2df12a12dce74932c0662c3ede64ac
Author: Cedric BAIL <[email protected]>
AuthorDate: Fri Aug 14 23:14:54 2026 -0600
wl_desktop_shell - send configure sizes in surface-local units
ec->x/y/w/h and the size the commit path settles on are canvas geometry. A
configure travels the other way, so it converts on the way out, in the one
place the xdg shell hands a size or a popup position to a client.
Identity while the scale is 1. A zero size means "you choose" and divides to
zero unchanged, so the initial configure keeps its meaning.
wlcs 1.8.1: 754 passed, 15 failed, failure set unchanged.
---
src/modules/wl_desktop_shell/xdg.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/modules/wl_desktop_shell/xdg.c b/src/modules/wl_desktop_shell/xdg.c
index 001318fe9..cd6dc5970 100644
--- a/src/modules/wl_desktop_shell/xdg.c
+++ b/src/modules/wl_desktop_shell/xdg.c
@@ -647,6 +647,7 @@ static void
_e_xdg_shell_surface_configure_send(struct wl_resource *resource, uint32_t edges, int32_t width, int32_t height)
{
E_Client *ec;
+ int scale;
/* get the client for this resource */
if (!(ec = wl_resource_get_user_data(resource)))
@@ -657,6 +658,13 @@ _e_xdg_shell_surface_configure_send(struct wl_resource *resource, uint32_t edges
return;
}
if (e_object_is_del(E_OBJECT(ec))) return;
+
+ /* Everything arriving here is canvas geometry - ec->x/y/w/h, and the size
+ * the commit path worked out. A configure goes the other way, so it leaves
+ * in the surface-local units the client asked to be spoken to in. A zero
+ * size means "you choose" and survives the division unchanged. */
+ scale = e_comp_wl_client_scale_get(ec);
+
if (e_client_util_is_popup(ec))
{
E_Shell_Data *shd;
@@ -664,13 +672,17 @@ _e_xdg_shell_surface_configure_send(struct wl_resource *resource, uint32_t edges
shd = ec->comp_data->shell.data;
serial = wl_display_next_serial(e_comp_wl->wl.disp);
- xdg_popup_send_configure(resource, ec->x - ec->parent->x, ec->y - ec->parent->y, width ?: ec->w, height ?: ec->h);
+ xdg_popup_send_configure(resource,
+ (ec->x - ec->parent->x) / scale,
+ (ec->y - ec->parent->y) / scale,
+ (width ?: ec->w) / scale,
+ (height ?: ec->h) / scale);
xdg_surface_send_configure(shd->surface, serial);
ec->comp_data->need_xdg_configure = 0;
return;
}
- _xdg_shell_surface_send_configure(resource, ec->fullscreen, !!ec->maximized || ec->comp_data->max, edges, width, height);
+ _xdg_shell_surface_send_configure(resource, ec->fullscreen, !!ec->maximized || ec->comp_data->max, edges, width / scale, height / scale);
}
static void
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.