bilelmoussaoui / ashpd

A Rust wrapper around XDG portals DBus interfaces
https://bilelmoussaoui.github.io/ashpd/ashpd/
MIT License
242 stars 46 forks source link

Deadlock inside gtk3/gtk4 WindowIdentifier backends #83

Closed ilya-fedin closed 2 years ago

ilya-fedin commented 2 years ago

I was trying Kooha on Plasma Wayland and observed that it doesn't do anything after (kooha:2265): Gdk-WARNING **: 20:42:02.271: Server is missing xdg_foreign support. Looking at https://github.com/bilelmoussaoui/ashpd/blob/c26ec5da44c250db84427784f4c25fdd64e08710/src/window_identifier/gtk4.rs#L42-L51 https://github.com/bilelmoussaoui/ashpd/blob/c26ec5da44c250db84427784f4c25fdd64e08710/src/window_identifier/gtk3.rs#L42-L52 I believe it deadlocks as the callback is never called. According to https://gtk-rs.org/gtk4-rs/stable/latest/docs/gdk4_wayland/struct.WaylandToplevel.html#method.export_handle and https://gtk-rs.org/gtk3-rs/stable/latest/docs/gdkwayland/struct.WaylandWindow.html#method.export_handle, export_handle has return argument that can be checked to know whether the call succeeded.

bilelmoussaoui commented 2 years ago

I only tested it on GNOME, will fix that in the next release.