bismuth icon indicating copy to clipboard operation
bismuth copied to clipboard

[Bug]: Cannot click on screen sharing popup (Wayland)

Open endeavour opened this issue 2 years ago • 12 comments

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

  1. Be using Wayland. Make sure Bismuth tiling is enabled.
  2. Go to https://www.webrtc-experiment.com/Pluginfree-Screen-Sharing/
  3. Click 'Share your screen'
  4. A dialog should pop up to ask you which screen you want to share..
  5. 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

image

Bismuth version

3.1.1-1

KDE Plasma version

5.24.5

The platform KWin is running on

Wayland

Additional context

No response

endeavour avatar May 30 '22 23:05 endeavour

Works for me in Bismuth 2.3.0, so this may have been a regression.

phrxmd avatar Jun 03 '22 10:06 phrxmd

I tried downgrading Bismuth and still no luck... so perhaps something has changed in KDE?

endeavour avatar Jun 03 '22 11:06 endeavour

I'm on 5.24.5 in Wayland as well.

phrxmd avatar Jun 03 '22 15:06 phrxmd

Bizarre! Have you tried upgrading Bismuth?

endeavour avatar Jun 03 '22 19:06 endeavour

Have you tried selecting the screen to share?

aleixpol avatar Jun 03 '22 21:06 aleixpol

Also please try running xdg-desktop-portals-kde on the terminal and see if you get amy warnings.

aleixpol avatar Jun 03 '22 21:06 aleixpol

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

endeavour avatar Jun 06 '22 08:06 endeavour

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

aleixpol avatar Jun 06 '22 16:06 aleixpol

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.

endeavour avatar Jun 06 '22 16:06 endeavour

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.

endeavour avatar Jun 06 '22 16:06 endeavour

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:

Video of behaviour

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.

endeavour avatar Jun 06 '22 17:06 endeavour

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.

endeavour avatar Jun 11 '22 12:06 endeavour