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 ad92bafb1ddae1b5bdebafd1dd3c8d54ce1adcb3
Author: Cedric BAIL <[email protected]>
AuthorDate: Wed Aug 12 19:04:09 2026 -0600

    wl_x11 - advertise a wl_output, so a browser has somewhere to put a window
    
    Running Brave against a nested compositor found this immediately: it connects,
    starts its GPU process, runs happily, and never maps anything at all.
    
    wayland-info against the nested compositor says why - there is no wl_output in
    the registry. Chromium will not create a window when there is no output to put
    it on, so nothing appears and nothing complains.
    
    wl_buffer and wl_wl both already call e_comp_wl_output_init() by hand, and
    wl_buffer's comment spells out the reason: it is otherwise only reached from
    _e_comp_wl_cb_randr_change(), which needs e_randr2 or fake xinerama screens,
    and behind an ecore_evas window there are neither. wl_x11 is in exactly the
    same position and is the one backend that never got the call.
    
    So this is not a new discovery so much as a gap next to two existing
    workarounds for the same thing. With it, wayland-info reports wl_output v4 and
    Brave maps, decorates and renders.
    
    No wlcs or in-tree test moves: both harnesses default to the buffer backend,
    which already had its own call. The criterion here is the browser.
    
    Co-Authored-By: Claude Opus 5 <[email protected]>
    Claude-Session: https://claude.ai/code/session_01FtoiXoSKUmZb6Aix6U3GZS
---
 src/modules/wl_x11/e_mod_main.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/modules/wl_x11/e_mod_main.c b/src/modules/wl_x11/e_mod_main.c
index 2e0b3b9f2..507f82e92 100644
--- a/src/modules/wl_x11/e_mod_main.c
+++ b/src/modules/wl_x11/e_mod_main.c
@@ -56,6 +56,17 @@ e_modapi_init(E_Module *m)
      }
    if (!e_comp_canvas_init(w, h)) return NULL;
 
+   /* Nothing else will do this for us, exactly as in wl_buffer and wl_wl,
+    * which both call it by hand and say why: e_comp_wl_output_init() is
+    * otherwise only reached from _e_comp_wl_cb_randr_change(), and behind an
+    * ecore_evas X11 window there is no e_randr2 screen to change.
+    *
+    * Without it the compositor advertises no wl_output whatsoever, which is
+    * not a cosmetic gap: Chromium will not create a window at all when there
+    * is no output to put it on, so Brave connects, runs, and never maps
+    * anything. wl_x11 is the one backend that never got this call. */
+   e_comp_wl_output_init(NULL, NULL, NULL, 0, 0, w, h, 0, 0, 0, 0, 0, 0);
+
    e_comp_wl_input_pointer_enabled_set(EINA_TRUE);
    e_comp_wl_input_keyboard_enabled_set(EINA_TRUE);
    e_comp_wl_input_touch_enabled_set(EINA_TRUE);

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

Reply via email to