#409 closed defect (fixed)

mouse events are not passed down to VM's Xorg (fc15)

Reported by: joanna Owned by: marmarek
Priority: major Milestone: Release 1 Beta 3
Component: gui-virtualization Keywords:
Cc: marmarek

Description

... but the log properly reports mouse events being delivered, e.g.:

[root@work qubes]# tail -20 gui_agent.log 
received message type 126
received message type 126
received message type 126
received message type 125
send buttonevent, win 0x1800003 type=4 button=1
handle property _NET_WM_USER_TIME for window 0x1e000e9
received message type 125
send buttonevent, win 0x1800003 type=5 button=1
received message type 126
received message type 126
received message type 126
received message type 126
received message type 126
received message type 126
received message type 126
received message type 126
received message type 126
received message type 127
received message type 128
0x1800003 lost focus

This happened suddenly, after some hours of successful use of this VM. Kbd events are injected fine.

Change History (9)

comment:1 Changed 18 months ago by joanna

Interestingly, after I closed some apps in this VM, the mouse started working again...

comment:2 Changed 18 months ago by marmarek

This looks like one of catches found on FC15. Have you clicked a right-bottom corner of gnome-terminal window? I haven't found any other workaround than closing all gnome-terminal windows...

comment:3 Changed 18 months ago by joanna

I didn't have any terminal opened in this VM :)

comment:4 Changed 18 months ago by marmarek

Ok, but still I think it is the same problem. Will try to find what this specific operation is.
Can you try to find what click causes this?

comment:5 Changed 18 months ago by joanna

It was a click in the right-bottom corner of the _nautilus_ window in fc15. Closing the nautilus windows restores mouse operation for other windows of the vm.

comment:6 Changed 18 months ago by marmarek

Looks that the same bug/feature. I think it is global for this gtk/gnome version (note that Gnome 3 was mostly rewritten from scratch)... Xtrace shows that application send XIGrabDevice to X server and does not ungrab it. Looks like a try to tell a window manager to resize window, but there is no window manager inside of VM (which should be detected by application, but unfortunately isn't).
On baremetal FC15 (and 16) it works correctly when window manager is running (window resizing is started), but on plain X server - the same behavior.

Perhaps it is related to http://developer.gnome.org/wm-spec/ _NET_WM_MOVERESIZE.

Will try to find some workaround for it (somehow tell the application that resize was finished or canceled or sth).

Last edited 17 months ago by marmarek (previous) (diff)

comment:7 Changed 17 months ago by marmarek

GTK+ 3 has a fallback for move/resize. When its detect absence of window manager (or at least WM not supporting move resize) - it tries to do it itself. But this code looks like at lease not compatible with Qubes GUI agent (if working at all).
Interesting code (function gdk_x11_window_begin_resize_drag):
http://git.gnome.org/browse/gtk+/tree/gdk/x11/gdkwindow-x11.c?h=gtk-3-0#n4497

Workarounded by pretending that GUI agent is a window manager with support for move/resize. All such requests will be (of course) ignored, but it is enough to disable broken GTK+ fallback.

comment:8 Changed 17 months ago by marmarek

  • Owner changed from rafal to marmarek
  • Status changed from new to accepted

comment:9 Changed 17 months ago by marmarek

  • Resolution set to fixed
  • Status changed from accepted to closed
Note: See TracTickets for help on using tickets.