Code Monkey home page Code Monkey logo

Comments (11)

totaam avatar totaam commented on July 3, 2024

Works fine on Fedora with Gnome - could be some incompatibility with KDE.

from xpra.

totaam avatar totaam commented on July 3, 2024

.. and then get a terminal on it (e.g. DISPLAY=:101 konsole)

Don't do that.
Use --start=konsole to get the correct environment setup.

from xpra.

callegar avatar callegar commented on July 3, 2024

Thanks for the advice, now using --start. Does not change the issue with the floating context menus, though. Might indeed be plasma specific or even plasma 6 specific or plasma 6 on wayland specific.

from xpra.

totaam avatar totaam commented on July 3, 2024

Does not change the issue with the floating context menus

I didn't think it would. That's a separate issue.

plasma 6 on wayland specific

Yes, that's likely.
Wayland makes all sorts of window positioning issues "interesting".

from xpra.

callegar avatar callegar commented on July 3, 2024

Also reported at KDE https://bugs.kde.org/show_bug.cgi?id=488208

from xpra.

callegar avatar callegar commented on July 3, 2024

Seems 100% reproducible for me, so I hope they can check it.

from xpra.

totaam avatar totaam commented on July 3, 2024

@callegar they're probably going to say that xpra is at fault.

from xpra.

callegar avatar callegar commented on July 3, 2024

Even if it was, which may well not be, I hope they will help by looking into it. xpra is a too important piece for having it misbehave in KDE, IMHO. Furthermore, the post X era where each DE has its own implementation of the wayland protocols really requires a lot of cooperation to assure that things remain consistent across desktops.

from xpra.

callegar avatar callegar commented on July 3, 2024

Issue is actually not limited to VirtualBox. I see a similar behavior with konsole. If I go on the sandwich button and press it, then a menu appears. When I try to show a submenu, the submenu flashes and disappears. At the same time I get messages such as:

(Xpra:54999): Gdk-WARNING **: 16:14:13.755: Couldn't map as window 0x620b98e10110 as popup because it doesn't have a parent

(Xpra:54999): Gdk-WARNING **: 16:14:18.089: Tried to map a popup with a non-top most parent

(Xpra:54999): Gdk-WARNING **: 16:14:20.503: Tried to map a popup with a non-top most parent
Gdk-Message: 16:14:33.630: Window 0x620b98e29c30 is a temporary window without parent, application will not be able to position it on screen.

from xpra.

callegar avatar callegar commented on July 3, 2024

In any case, forcing the xpra client to work in X11 mode rather than in wayland mode works around the issue. Enough to do GDK_BACKEND=x11 xpra attach --ssh=ssh --dpi <dpi> ssh://<host>/<display> --start konsole.

from xpra.

totaam avatar totaam commented on July 3, 2024

I see a similar behavior with konsole

Works fine here on Fedora + Gnome Shell.

The problem comes from this:
Window 0x620b98e29c30 is a temporary window without parent, application will not be able to position it on screen.

X11 applications routinely place their windows wherever they like, but Wayland decided to break the vast majority of existing applications by not providing an API for doing that (it does exist, as can be seen when using XWayland).
We try hard to find a parent:

def patch_OR_popup_transient_for(self, metadata: typedict) -> None:
pid = metadata.intget("pid", 0)
twid = metadata.intget("transient-for", 0)
if is_Wayland():
# if this is a sub-popup (ie: a submenu),
# then GTK-Wayland refuses to show it unless we set transient-for
# to point to the parent popup.
# Even if under X11, `WM_TRANSIENT_FOR` points to the parent / top-level window...
twid = self._find_pid_focused_window(pid, True)
# try to ensure popup windows have a transient-for:
if not twid:
twid = self._find_pid_focused_window(pid)
if twid:
metadata["transient-for"] = twid

def _find_pid_focused_window(self, pid: int, OR=False) -> int:
for twid, twin in self._id_to_window.items():
if twin._override_redirect != OR:
continue
if twin._metadata.intget("pid", -1) == pid:
if OR or twid == self._focused:
return twid
return 0

And there's only so much guessing we can do without getting it wrong.
Perhaps the version of VirtualBox also makes a difference: newer versions are more likely to bend over backwards to try to satisfy all these new Wayland windows relationship restrictions.

from xpra.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.