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.

Reply via email to