This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository enlightenment.

View the commit online.

commit a05473007f7f0461160b6d6a5699612472bb66ab
Author: Alastair Poole <[email protected]>
AuthorDate: Tue Apr 21 01:01:01 2026 +0100

    comp/x: ignore _GTK_FRAME_EXTENTS when computing E frame geometry
    
    Chromium/Brave may publish _GTK_FRAME_EXTENTS for client-side
    decoration/shadow extents even when the window should receive normal
    Enlightenment-managed borders.
    
    We were feeding those client-provided extents back into E’s internal
    frame geometry state. That caused some clients to be treated as
    effectively borderless and could also skew maximize/bounds calculations,
    showing up as missing system titlebars/borders or slightly off-screen
    maximized windows.
    
    Make _e_comp_x_frame_extents_adjust() a no-op so _GTK_FRAME_EXTENTS
    no longer overrides WM-managed frame geometry. This preserves correct
    server-side decoration behavior for Brave/Chromium.
    
    Windows no longer expand beyond the screen boundary and clients
    will inherit E's window border management if enabled.
---
 src/bin/e_comp_x.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 59a9a0211..dfa165b82 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -3449,8 +3449,24 @@ _e_comp_x_hook_client_post_new_client(void *d EINA_UNUSED, E_Client *ec)
 }
 
 static void
-_e_comp_x_frame_extents_adjust(E_Client *ec, int exl, int exr, int ext, int exb)
+_e_comp_x_frame_extents_adjust(E_Client *ec EINA_UNUSED, int exl EINA_UNUSED, int exr EINA_UNUSED, int ext EINA_UNUSED, int exb EINA_UNUSED)
 {
+/*
+ * _GTK_FRAME_EXTENTS is a client-side hint describing extents used by
+ * the application/toolkit (typically CSD shadows/titlebar drag regions),
+ * not WM-managed server-side frame geometry.
+ *
+ * Some Chromium/Brave windows publish _GTK_FRAME_EXTENTS even when they
+ * should receive normal Enlightenment decorations. Using those values here
+ * to rewrite E's internal frame geometry causes the client to be treated
+ * as effectively borderless or to get incorrect maximize/bounds behavior
+ * (for example, no system titlebar/border or slightly off-screen sizing).
+ *
+ * In practice this path breaks Brave, while doing nothing here preserves
+ * correct Enlightenment-managed framing. So this function is intentionally
+ * a no-op: E must not let client-provided _GTK_FRAME_EXTENTS override its
+ * own frame geometry decisions.
+
    unsigned int extentscurrent;
    unsigned int extentsall = exl | exr | ext | exb;
    int insl = 0, insr = 0, inst = 0, insb = 0;
@@ -3471,6 +3487,7 @@ _e_comp_x_frame_extents_adjust(E_Client *ec, int exl, int exr, int ext, int exb)
             (ec->y == ec->comp_data->initial_attributes.y))
           e_comp_object_frame_xy_adjust(ec->frame, ec->x, ec->y, &ec->x, &ec->y);
      }
+*/
 }
 
 static Eina_Bool

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to