<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Hi Gaël,</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">thanks for the headsup !</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><span>> Concerning the code
        structure it's quite natural, since it keeps the socket/plug
        structure, and it reuses all the process management and IPC
        mechanism already in place. I just added some D-Bus
        signals/methods, and an abstraction layer to distinguish X11 and
        Wayland implementations of socket/plug.</span></div>
    <p>Sounds good to me ... probably<span> a nice way to keep X11
        backward compartibility while keeping well structured code .<br>
      </span></p>
    <div class="moz-cite-prefix">Looking forward to run a wayland xfce
      session when your MR and the one from xfdesktop gets merged :D !<br>
      <div class="moz-cite-prefix"><br>
      </div>
      <span></span></div>
    <div class="moz-cite-prefix"><span>Cheers, Alex<br>
      </span></div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Am 28.10.22 um 13:13 schrieb Gaël
      Bonithon:<br>
    </div>
    <blockquote type="cite"
cite="mid:p6D_nLlZJXxQiDmV-ydXJfxRo1K9Xq9Uw6aPT847y0tXGVsAvhgxTeN3XNV8ked7TbMQG_eVo8XdTuhqSW-1uS7gi1GHtqKtunMq0znw02s=@protonmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div style="font-family: Arial; font-size: 14px;"><span>Hi all,</span>
        <div><br>
        </div>
        <div><span>It seems that I have found a viable, albeit
            non-native, solution for external panel plugins on Wayland
            (i.e. plugins running in a separate process).</span></div>
        <div><br>
        </div>
        <div><span>Since I really didn't want to go down the embedding
            compositor route, I followed a bit of the same idea as the
            XDG foreign protocol, but for layer shell windows, and using
            D-Bus instead of the compositor to synchronize the "socket"
            and "plug" geometries, to follow the GTK terminology.</span></div>
        <div><br>
        </div>
        <div><span>It works quite well, better than I would have thought
            in fact, especially when moving the panel: since the overlay
            of the plug and socket is not managed internally by the
            compositor, we can see that the plugins dissociate a little
            from the panel when moving, but it remains reasonable. It is
            not excluded that other side effects appear here or there
            though, knowing that it also depends on the way the
            compositor implements the layer-shell protocol.</span></div>
        <div><br>
        </div>
        <div><span>On the other hand, some graphical limitations related
            to the XEmbed protocol do not apply anymore, as for
            background images in this issue [1]. By making the plug
            background transparent, we obtain a homogeneous rendering on
            the whole panel as with internal plugins.</span></div>
        <div><br>
        </div>
        <div><span>Concerning the code structure it's quite natural,
            since it keeps the socket/plug structure, and it reuses all
            the process management and IPC mechanism already in place. I
            just added some D-Bus signals/methods, and an abstraction
            layer to distinguish X11 and Wayland implementations of
            socket/plug.</span></div>
        <div><br>
        </div>
        <div><span>This way, if by chance an extension of the XDG
            foreign protocol to layer shell windows should come along,
            or anything else that keeps this socket/plug structure,
            maintenance should be quite simple. I have little hope that
            this will happen though, reading this rather informative
            issue [2] ("Allow embedding foreign wl_surfaces", already
            quoted in previous threads, and not only closed, but
            locked...).</span></div>
        <div><br>
        </div>
        <div><span>With this I'm getting closer to something that can be
            merged anyway [3], it should be good soon after the release
            of Xfce 4.18 I think :)</span></div>
      </div>
      <div style="font-family: Arial; font-size: 14px;"><br>
      </div>
      <div class="protonmail_signature_block" style="font-family: Arial;
        font-size: 14px;">
        <div class="protonmail_signature_block-user"> Cheers,<br>
          Gaël
          <div><br>
          </div>
        </div>
        <div style="font-family: Arial; font-size: 14px;">--</div>
        <div style="font-family: Arial; font-size: 14px;"><span>[1] <a
              target="_blank" rel="noreferrer nofollow noopener"
              href="https://gitlab.xfce.org/xfce/xfce4-panel/-/issues/107"
              moz-do-not-send="true" class="moz-txt-link-freetext">https://gitlab.xfce.org/xfce/xfce4-panel/-/issues/107</a></span>
          <div><span>[2] <a target="_blank" rel="noreferrer nofollow
                noopener"
href="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/74"
                moz-do-not-send="true" class="moz-txt-link-freetext">https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/74</a></span></div>
          <span>[3] <a target="_blank" rel="noreferrer nofollow
              noopener"
              href="https://gitlab.xfce.org/xfce/xfce4-panel/-/merge_requests/103"
              moz-do-not-send="true" class="moz-txt-link-freetext">https://gitlab.xfce.org/xfce/xfce4-panel/-/merge_requests/103</a></span><br>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Xfce4-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Xfce4-dev@xfce.org">Xfce4-dev@xfce.org</a>
<a class="moz-txt-link-freetext" href="https://mail.xfce.org/mailman/listinfo/xfce4-dev">https://mail.xfce.org/mailman/listinfo/xfce4-dev</a></pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>