bismuth
bismuth copied to clipboard
[Bug]: Cannot click on screen sharing popup (Wayland)
Summary
On KDE Plasma using Wayland screen sharing popup doesn't respond to mouse clicks or the keyboard when bismuth tiling is enabled.
Steps to Reproduce
- Be using Wayland. Make sure Bismuth tiling is enabled.
- Go to https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/
- Click 'Share your screen'
- A dialog should pop up to ask you which screen you want to share..
- Try clicking on anything in that dialog or using the keyboard. It doesn't respond.
The same thing happens when trying to screen share in Microsoft Teams (and presumably Zoom etc). Turning off tiling fixes this issue.
Expected behavior
Dialog should respond to mouse and keyboard events.
Screenshots
Bismuth version
3.1.1-1
KDE Plasma version
5.24.5
The platform KWin is running on
Wayland
Additional context
No response
Works for me in Bismuth 2.3.0, so this may have been a regression.
I tried downgrading Bismuth and still no luck... so perhaps something has changed in KDE?
I'm on 5.24.5 in Wayland as well.
Bizarre! Have you tried upgrading Bismuth?
Have you tried selecting the screen to share?
Also please try running xdg-desktop-portals-kde on the terminal and see if you get amy warnings.
I'm unable to select the screen to share - as I say, clicking on the dialog doesn't do anything.
I also don't seem to have that command available, although the xdg-desktop-portal-kde package is installed:
$ xdg-desktop-portals-kde
bash: xdg-desktop-portals-kde: command not found
To run my own xdg-desktop-portal-kde, I do this:
killall xdg-desktop-portal xdg-desktop-portal-kde ; QT_FORCE_STDERR_LOGGING=1 /home/apol/devel/kde5/lib/libexec/xdg-desktop-portal-kde
Obviously change the path to the executable to wherever you have it installed
Thanks for that, here are the logs:
xdp-kde: Desktop portal registered successfully
xdp-kde-wayland-integration: Registry initialized
xdp-kde-wayland-integration: Adding output:
xdp-kde-wayland-integration: manufacturer: "Lenovo Group Limited"
xdp-kde-wayland-integration: model: "LEN P27u-10/1110463568"
xdp-kde-wayland-integration: resolution: QSize(3840, 2160)
xdp-kde-wayland-integration: Adding output:
xdp-kde-wayland-integration: manufacturer: "Lenovo Group Limited"
xdp-kde-wayland-integration: model: "LEN P27u-10/1110463578"
xdp-kde-wayland-integration: resolution: QSize(3840, 2160)
xdp-kde-screencast: CreateSession called with parameters:
xdp-kde-screencast: handle: "/org/freedesktop/portal/desktop/request/1_1278/webrtc_142162983"
xdp-kde-screencast: session_handle: "/org/freedesktop/portal/desktop/session/1_1278/webrtc_session87907627"
xdp-kde-screencast: app_id: ""
xdp-kde-screencast: options: QMap()
xdp-kde-screencast: SelectSource called with parameters:
xdp-kde-screencast: handle: "/org/freedesktop/portal/desktop/request/1_1278/webrtc1574278666"
xdp-kde-screencast: session_handle: "/org/freedesktop/portal/desktop/session/1_1278/webrtc_session87907627"
xdp-kde-screencast: app_id: ""
xdp-kde-screencast: options: QMap(("cursor_mode", QVariant(uint, 4))("multiple", QVariant(bool, false))("types", QVariant(uint, 3)))
xdp-kde-screencast: Start called with parameters:
xdp-kde-screencast: handle: "/org/freedesktop/portal/desktop/request/1_1278/webrtc607248474"
xdp-kde-screencast: session_handle: "/org/freedesktop/portal/desktop/session/1_1278/webrtc_session87907627"
xdp-kde-screencast: app_id: ""
xdp-kde-screencast: parent_window: ""
xdp-kde-screencast: options: QMap()
file:///usr/lib/qt/qml/org/kde/plasma/workspace/dialogs/SystemDialog.qml:103:5: QML Binding: Not restoring previous value because restoreMode has not been set.
This behavior is deprecated.
You have to import QtQml 2.15 after any QtQuick imports and set
the restoreMode of the binding to fix this warning.
In Qt < 6.0 the default is Binding.RestoreBinding.
In Qt >= 6.0 the default is Binding.RestoreBindingOrValue.
Binding {
^
file:///usr/lib/qt/qml/org/kde/plasma/workspace/dialogs/SystemDialog.qml:103:5: QML Binding: Not restoring previous value because restoreMode has not been set.
This behavior is deprecated.
You have to import QtQml 2.15 after any QtQuick imports and set
the restoreMode of the binding to fix this warning.
In Qt < 6.0 the default is Binding.RestoreBinding.
In Qt >= 6.0 the default is Binding.RestoreBindingOrValue.
One additional thing I've noticed:
If I have just logged into plasma, and I immediately fire up chrome and try to share the window it works fine. But it fails every subsequent time after this.
Additionally, the first time the dialog is loaded it gets tiled by bismuth, but after that it appears as a floating dialog and no longer responds.
In addition there is some strange behaviour - although the dialog appears to be floated it still occupies half the screen as if it were tiled:
I have a hunch this may be a timing bug since two modal windows are appearing at the same time (this one and Chrome's own one), and depending which one appears first determines whether the dialog can respond or not.
I ditched Manjaro and installed endeavouros and the problem has gone away.. in fact that dialog no longer appears at all anymore, I just get the chrome screen sharing dialog.