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.