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

git pushed a commit to branch feat/e-wl-proxy-planb
in repository enlightenment.

View the commit online.

commit 11a5aaf93bbf122950b9e31db54f4434c9688932
Author: [email protected] <[email protected]>
AuthorDate: Mon Jun 8 11:03:23 2026 -0600

    fix(wl): restore public WAYLAND_DISPLAY after backend socket create
    
    ecore_wl2_display_create() overwrites WAYLAND_DISPLAY with the socket name
    it creates. Behind e_wl_proxy that is the private backend, so every client
    E spawned would bypass the proxy. Capture the public name before the call
    and restore it after.
---
 src/bin/e_comp_wl.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 7062c35b8..f8d0e3635 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -2794,15 +2794,30 @@ _e_comp_wl_compositor_create(void)
 
    /* try to create an ecore_wl2 display. When run behind e_wl_proxy,
     * E_WL_SOCKET names the private backend socket the proxy connects to;
-    * otherwise NULL keeps the auto-named socket. */
-   cdata->ewd = ecore_wl2_display_create(getenv("E_WL_SOCKET"));
+    * otherwise NULL keeps the auto-named socket. ecore_wl2_display_create()
+    * overwrites WAYLAND_DISPLAY with the socket name it created, so capture
+    * the proxy's public name first and restore it afterwards — otherwise every
+    * client E spawns would connect straight to the backend, bypassing the
+    * proxy. */
+   const char *backend = getenv("E_WL_SOCKET");
+   char *public_disp = (backend && getenv("WAYLAND_DISPLAY")) ?
+                       strdup(getenv("WAYLAND_DISPLAY")) : NULL;
+
+   cdata->ewd = ecore_wl2_display_create(backend);
    if (!cdata->ewd)
      {
         ERR("Could not create a Wayland display");
+        free(public_disp);
         free(cdata);
         return EINA_FALSE;
      }
 
+   if (public_disp)
+     {
+        e_env_set("WAYLAND_DISPLAY", public_disp);
+        free(public_disp);
+     }
+
    cdata->wl.disp = ecore_wl2_display_get(cdata->ewd);
    if (!cdata->wl.disp)
      {

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

Reply via email to