Qt with x11vnc mouse click not working
-
wrote on 19 Aug 2021, 14:35 last edited by
Hi,
i am trying to use x11vnc to remote control my embedded imx6 arm application via WLAN/LAN.
So far, i have successful connect and i can see the framebuffer images and the keyboard events are working, but the mouse events dont.
export QT_QPA_EGLFS_NO_LIBINPUT=1 export QT_QPA_EVDEV_MOUSE_PARAMETERS=grab=1 export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1 ./myApp --platform eglfs
Here is how i start x11vnc:
x11vnc -noipv6 -rawfb /dev/fb0 -geometry 1920x1080 -pipeinput UINPUT:direct_abs=/dev/uinput -dk -dp
All external input devices are working like a usb mouse/touchscreen but not from my VNC Viewer.
I can see the output logs from x11vnc and it is sending the events:
19/08/2021 16:26:16 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 4133 19/08/2021 16:26:16 Not opening DISPLAY in -rawfb mode (force via -rawfb +str) 19/08/2021 16:26:16 Continuing without X display in -rawfb mode. 19/08/2021 16:26:16 console_guess: file is /dev/fb0 19/08/2021 16:26:16 console_guess returned: map:/dev/fb0@1280x800x32:ff0000/ff00/ff 19/08/2021 16:26:16 raw fb is non-regular file: /dev/fb0 19/08/2021 16:26:16 rawfb: mmap file: /dev/fb0 19/08/2021 16:26:16 w: 1280 h: 800 b: 32 addr: 0x7629e000 sz: 4096000 19/08/2021 16:26:16 uinput: opened: direct_abs=/dev/uinput fd=5 19/08/2021 16:26:16 initialize_uinput: using: /dev/uinput 6 19/08/2021 16:26:16 initialize_screen: fb_depth/fb_bpp/fb_Bpl 24/32/5120 19/08/2021 16:26:16 scaling screen: 1280x800 -> 1920x1080 19/08/2021 16:26:16 scaling screen: scale_fac_x=1.50000 scale_fac_y=1.35000 19/08/2021 16:26:16 19/08/2021 16:26:16 Raw fb at addr 0x7629e000 is 32bpp depth=24 true color 19/08/2021 16:26:16 19/08/2021 16:26:17 Autoprobing TCP port 19/08/2021 16:26:17 Autoprobing selected TCP port 5900 19/08/2021 16:26:17 Autoprobing TCP6 port 19/08/2021 16:26:17 Autoprobing selected TCP6 port 5900 19/08/2021 16:26:17 Not listening on IPv6 interface. 19/08/2021 16:26:17 fb read rate: 195 MB/sec 19/08/2021 16:26:17 fast read: reset -wait ms to: 10 19/08/2021 16:26:17 fast read: reset -defer ms to: 10 19/08/2021 16:26:17 screen setup finished. 19/08/2021 16:26:17 19/08/2021 16:26:17 WARNING: You are running x11vnc WITHOUT a password. See 19/08/2021 16:26:17 WARNING: the warning message printed above for more info. 19/08/2021 16:26:17 ..... 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 772, y: 216) dx: 0 dy: -1 dt: 0.3977 t: 11.3860 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 772, y: 215) dx: 0 dy: -1 dt: 0.3701 t: 11.7561 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 773, y: 215) dx: 1 dy: 0 dt: 0.0436 t: 11.7997 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 773, y: 214) dx: 0 dy: -1 dt: 0.0898 t: 11.8895 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 774, y: 214) dx: 1 dy: 0 dt: 0.0142 t: 11.9036 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 775, y: 214) dx: 1 dy: 0 dt: 0.1216 t: 12.0253 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 778, y: 214) dx: 3 dy: 0 dt: 0.0438 t: 12.0691 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 783, y: 214) dx: 5 dy: 0 dt: 0.0025 t: 12.0715 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 788, y: 215) dx: 5 dy: 1 dt: 0.0111 t: 12.0826 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 790, y: 215) dx: 2 dy: 0 dt: 0.0010 t: 12.0836 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 794, y: 216) dx: 4 dy: 1 dt: 0.0026 t: 12.0862 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 803, y: 218) dx: 9 dy: 2 dt: 0.0111 t: 12.0973 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 808, y: 220) dx: 5 dy: 2 dt: 0.0009 t: 12.0983 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 815, y: 221) dx: 7 dy: 1 dt: 0.0027 t: 12.1009 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 824, y: 224) dx: 9 dy: 3 dt: 0.0110 t: 12.1120 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 830, y: 226) dx: 6 dy: 2 dt: 0.0009 t: 12.1129 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 832, y: 226) dx: 2 dy: 0 dt: 0.0027 t: 12.1157 19/08/2021 16:26:27 # pointer(mask: 0x0, x: 839, y: 228) dx: 7 dy: 2 dt: 0.0111 t: 12.1268
It adds the event input here /dev/input/event4 and if i move the mouse inside vnc viewer from my remote PC i get this:
cat /dev/input/event4 ?ja?n<????ja?n?????ja?n?ja?n?ja?n?ja???ja???ja???ja???????ja???ja??ja??????ja??ja(??????ja(??ja???ja???????ja???ja@??ja@??????ja@??ja???ja???ja*?ja*?ja??ja??????ja??ja?ja?????ja?ja?H?ja?H?????ja?H?ja?J?ja?J?????ja?J?ja?Z?ja?Z?
But the problem is not with x11vnc, but with Qt not understanding the mouse events?
I found something here: https://embeddeduse.com/2016/04/01/remote-support-vnc-harvester-terminal/
That vnc mouse events are "converted" so that Qt understands the mouse clicks and movements.
Maybe that is the only way? Or am i missing something? -
Hi,
Which device does your application use for mouse handling ?