Xpra-org / xpra

Persistent remote applications for X11; screen sharing for X11, MacOS and MSWindows.
https://xpra.org/
GNU General Public License v2.0
1.98k stars 169 forks source link

Something "very weird" happens, and the Session Info window cannot be click-drag-moved #4221

Open stdedos opened 6 months ago

stdedos commented 6 months ago

Describe the bug

I need to use "for some reason" Alt+Tab in order to "break free" of "whatever happens" with Session Info. Otherwise, apart from Session Info not being movable, I also cannot interact with anything else (e.g. click-pause a YouTube video I watch on the other screen)

Really don't have much to say or show about it. I could make a video, but idk what would it really show.

"Xpra-Light-x86_64_6.1-r35733\xpra_cmd" shadow ssh://user@ip/0  --modal-windows=no --headerbar=off --title="@title@ on @@/@server-display@" --encodings=-webp --microphone=off --speaker=off --webcam=no --pulseaudio=no --opengl=no --min-speed=70 --key-shortcut=Shift+F2:toggle_pointer_grab

XPRA_EXECUTABLE=Xpra-Light-x86_64_6.1-r35733
XPRA_FILE_CHOOSER_NATIVE=2

2024-05-08 21:55:50,192 Xpra GTK3 client version 6.1-r35733 (gfec4bb7e41) beta (light build)
2024-05-08 21:55:50,482  running on Microsoft Windows Microsoft Windows 10 Enterprise
2024-05-08 21:55:50,482  cpython 3.11
2024-05-08 21:55:51,282 GStreamer version 1.24.3
2024-05-08 21:55:51,309 created named pipe 'Xpra\7040'
2024-05-08 21:55:51,439 keyboard layout 'United States - English' : 'us' (0x409)
2024-05-08 21:55:51,569 Connected (version 2.0, client OpenSSH_8.2p1)
2024-05-08 21:55:51,654 Auth banner: b'Ubuntu 20.04.6 LTS \\n 
2024-05-08 21:55:51,673 SSH password authentication failed:
2024-05-08 21:55:51,674  Bad authentication type
2024-05-08 21:55:51,674   allowed types: ['publickey', 'password']
2024-05-08 21:55:59,535 Authentication (password) successful!
2024-05-08 21:55:59,806 ssh server OS is 'linux-gnu'
2024-05-08 21:55:59,965 paramiko SSH agent forwarding enabled
2024-05-08 21:56:00,055  keyboard settings: layout=us
2024-05-08 21:56:00,057  desktop size is 4480x1516:
2024-05-08 21:56:00,058   Default (1185x401 mm - DPI: 96x96) workarea: 4480x1476
2024-05-08 21:56:00,058     Samsung C32JG5x  2560x1440 at    0x0    (697x392 mm - DPI: 93x93) workarea: 2560x1400
2024-05-08 21:56:00,058     LG IPS234        1920x1080 at 2560x436  (510x290 mm - DPI: 96x95) workarea: 1920x1040 at 2560x436
2024-05-08 21:56:00,213  SSH: 'Entering daemon mode; any further errors will be reported to:'
2024-05-08 21:56:00,214  SSH: "  '/run/user/1000/xpra/0/server.log'"
2024-05-08 21:56:01,320 enabled remote logging
2024-05-08 21:56:01,321 Xpra shadow server version 5.0
2024-05-08 21:56:01,322  remote desktop size is 1920x1200
2024-05-08 21:56:01,323   :0.0 (508x317 mm - DPI: 96x96) workarea: 1851x1173 at   69x27
2024-05-08 21:56:01,323     LGD eDP-1        (336x210 mm - DPI: 145x145)
2024-05-08 21:56:01,763 running, 1 windows
2024-05-08 22:13:49,262 keyboard layout 'Greek' : 'gr' (0x408)
2024-05-08 22:13:49,268 keymap has been changed to 'gr'
2024-05-08 22:13:49,268  sending updated mappings to the server
2024-05-08 22:13:52,985 keyboard layout 'United States - English' : 'us' (0x409)
2024-05-08 22:13:52,991 keymap has been changed to 'us'
2024-05-08 22:13:52,992  sending updated mappings to the server

To Reproduce Steps to reproduce the behavior:

  1. server command
  2. client command
  3. specific action to trigger the bug

System Information (please complete the following information):

Additional context Add any other context about the problem here. Please see "reporting bugs" in the wiki section.

totaam commented 6 months ago

Maybe something to do with autograb? https://github.com/Xpra-org/xpra/blob/32a1aa9ecf3b06642469678af53aa09c53b55b48/xpra/client/gtk3/window_base.py#L168-L170 Can you see anything useful with -d focus,grab?

stdedos commented 6 months ago

Hmmm ... "something". But idk (windows terminal does not support pressing Enter 😓)

2024-05-09 23:33:59,042 keyboard_grab()
2024-05-09 23:33:59,043 <__gi__.GdkSeatDefault object at 0x0000021900f20b80 (GdkSeatDefault at 0x000002197a8fdca0)>.grab(..)=<enum GDK_GRAB_SUCCESS of type Gdk.GrabStatus>
2024-05-09 23:33:59,043 keyboard_grab() <__gi__.GdkSeatDefault object at 0x0000021900f20b80 (GdkSeatDefault at 0x000002197a8fdca0)>.grab(..)=SUCCESS, keyboard_grabbed=True
2024-05-09 23:33:59,044 on_leave_notify_event(ClientWindow(1), <Gdk.EventCrossing object at 0x0000021900f2c5f0 (void at 0x000002197d132cf0)>) crossing event fields: {'detail': <enum GDK_NOTIFY_VIRTUAL of type Gdk.NotifyType>, 'focus': False, 'mode': <enum GDK_CROSSING_NORMAL of type Gdk.CrossingMode>, 'subwindow': <__gi__.GdkWin32Window object at 0x0000021900ef3800 (GdkWin32Window at 0x000002197d0ca950)>, 'type': <enum GDK_LEAVE_NOTIFY of type Gdk.EventType>, 'window': <__gi__.GdkWin32Window object at 0x0000021900d98a00 (GdkWin32Window at 0x000002197d0c9f90)>}
2024-05-09 23:33:59,045 keyboard_ungrab()
2024-05-09 23:34:07,711 update_focus(0, False) focused=None, grabbed=0
2024-05-09 23:34:08,691 on_enter_notify_event(ClientWindow(1), <Gdk.EventCrossing object at 0x0000021900f3fa20 (void at 0x000002197d138930)>)
2024-05-09 23:34:08,692 may_autograb() server-mode=shadow, autograb(['shadow', 'desktop', 'monitors'])=True
2024-05-09 23:34:08,692 keyboard_grab()
2024-05-09 23:34:08,692 <__gi__.GdkSeatDefault object at 0x0000021900ef2300 (GdkSeatDefault at 0x000002197a8fdca0)>.grab(..)=<enum GDK_GRAB_SUCCESS of type Gdk.GrabStatus>
2024-05-09 23:34:08,693 keyboard_grab() <__gi__.GdkSeatDefault object at 0x0000021900ef2300 (GdkSeatDefault at 0x000002197a8fdca0)>.grab(..)=SUCCESS, keyboard_grabbed=True
2024-05-09 23:34:08,836 on_leave_notify_event(ClientWindow(1), <Gdk.EventCrossing object at 0x0000021900f3fa20 (void at 0x000002197d1380f0)>) crossing event fields: {'detail': <enum GDK_NOTIFY_VIRTUAL of type Gdk.NotifyType>, 'focus': False, 'mode': <enum GDK_CROSSING_NORMAL of type Gdk.CrossingMode>, 'subwindow': <__gi__.GdkWin32Window object at 0x0000021900ebb780 (GdkWin32Window at 0x000002197d0ca950)>, 'type': <enum GDK_LEAVE_NOTIFY of type Gdk.EventType>, 'window': <__gi__.GdkWin32Window object at 0x0000021900d98a00 (GdkWin32Window at 0x000002197d0c9f90)>}

2024-05-09 23:34:08,837 keyboard_ungrab()
2024-05-09 23:34:33,948 update_focus(0, False) focused=None, grabbed=0

2024-05-09 23:34:42,325 on_enter_notify_event(ClientWindow(1), <Gdk.EventCrossing object at 0x0000021900e20e10 (void at 0x000002197d136ef0)>)
2024-05-09 23:34:42,326 may_autograb() server-mode=shadow, autograb(['shadow', 'desktop', 'monitors'])=True
2024-05-09 23:34:42,327 keyboard_grab()
2024-05-09 23:34:42,327 <__gi__.GdkSeatDefault object at 0x0000021925b099c0 (GdkSeatDefault at 0x000002197a8fdca0)>.grab(..)=<enum GDK_GRAB_SUCCESS of type Gdk.GrabStatus>
2024-05-09 23:34:42,328 keyboard_grab() <__gi__.GdkSeatDefault object at 0x0000021925b099c0 (GdkSeatDefault at 0x000002197a8fdca0)>.grab(..)=SUCCESS, keyboard_grabbed=True
2024-05-09 23:34:42,673 on_leave_notify_event(ClientWindow(1), <Gdk.EventCrossing object at 0x0000021900f1b070 (void at 0x000002197d1384b0)>) crossing event fields: {'detail': <enum GDK_NOTIFY_VIRTUAL of type Gdk.NotifyType>, 'focus': False, 'mode': <enum GDK_CROSSING_NORMAL of type Gdk.CrossingMode>, 'subwindow': <__gi__.GdkWin32Window object at 0x0000021900e3e240 (GdkWin32Window at 0x000002197d0ca950)>, 'type': <enum GDK_LEAVE_NOTIFY of type Gdk.EventType>, 'window': <__gi__.GdkWin32Window object at 0x0000021900d98a00 (GdkWin32Window at 0x000002197d0c9f90)>}
2024-05-09 23:34:42,674 keyboard_ungrab()

I would focus on

2024-05-09 23:34:08,837 keyboard_ungrab()
2024-05-09 23:34:33,948 update_focus(0, False) focused=None, grabbed=0

The last one is indeed me pressing Alt+Tab

stdedos commented 4 months ago

I thought this was fix - but apparently not:

2024-07-07 11:44:22,535  keyname=Greek_omega, keycode=86
2024-07-07 11:44:22,535  'utf-8' codec can't decode byte 0xf9 in position 0: invalid start byte
2024-07-07 11:44:31,226 UI thread is now blocked
2024-07-07 11:44:41,811 UI thread is running again, resuming
**
GLib:ERROR:../glib-2.80.3/glib/gmain.c:3296:g_main_dispatch: assertion failed: (source)
Bail out! GLib:ERROR:../glib-2.80.3/glib/gmain.c:3296:g_main_dispatch: assertion failed: (source)

"was: Xpra-Light-x86_64_6.1-r35982\xpra_cmd" shadow ssh://user@ip/0  --modal-windows=no --headerbar=off --title="@title@ on @@/@server-display@" --encodings=-webp --microphone=off --speaker=off --webcam=no --pulseaudio=no --opengl=no --min-speed=70 --key-shortcut=Shift+F2:toggle_pointer_grab

This time I "escaped" with Esc (pun not intended).

It also crashed the client (as evident).

Idk - does AUTOGRAB_WITH_POINTER work like so that, if the pointer is "on top" of an XPRA window, then the focus is grabbed?

Because the Session Info window was "on top" of the Shadow window