xrdp
xrdp copied to clipboard
RDP from Windows 10 to Ubuntu 20.04, Chrome Browser Favourite Tool bar selection,Cursor keeps moving
When I do RDP from Windows 10 to Ubuntu 20.04 and I'm using Chrome Browser as seen in the video. The cursor keeps bouncing to the top when selecting the favourities sub folder URLs. Do note, this happens with Chrome Browser only and not with Firefox. Any help will be highly appreciated. Do check the video. Chrome, xrdp is at the latest versions
Google Chrome Favourities URL Selection Cursor Movement.pptx
I observe the same buggy behavior xRDP to Kubuntu 18.04... and I noticed that I can navigate the submenus using the keyboard without this issue (so, it seems related to the mouse cursor, more specifically). Visual Studio Code submenus also exhibit the same behavior.
Thanks for opening this xrdp ticket. I've been looking into this. I think it's a Chromium bug. I also have found a change I can make to xrdp that seems to fix it. If we disable the RAW mouse input in Xorg it seems to go away. I'll update more on this.
I think this is the same issue, https://github.com/microsoft/vscode/issues/113630
here is a patch that seems to fix it
diff --git a/xrdpmouse/rdpMouse.c b/xrdpmouse/rdpMouse.c
index 555e1e3..e91a8ed 100644
--- a/xrdpmouse/rdpMouse.c
+++ b/xrdpmouse/rdpMouse.c
@@ -98,8 +98,22 @@ l_bound_by(int val, int low, int high)
static void
rdpEnqueueMotion(DeviceIntPtr device, int x, int y)
{
+ int buttons;
+ int flags;
+ ValuatorMask *mask;
+
LLOGLN(10, ("rdpEnqueueMotion:"));
- xf86PostMotionEvent(device, TRUE, 0, 2, x, y);
+ /* Xorg 1.9.0+ see git sha1 675f4a8 */
+ buttons = 0;
+ flags = POINTER_SCREEN | POINTER_ABSOLUTE | POINTER_NORAW;
+ mask = valuator_mask_new(2);
+ if (mask != NULL)
+ {
+ valuator_mask_set(mask, 0, x);
+ valuator_mask_set(mask, 1, y);
+ QueuePointerEvents(device, MotionNotify, buttons, flags, mask);
+ valuator_mask_free(&mask);
+ }
}
/******************************************************************************/
here is a patch that seems to fix it
diff --git a/xrdpmouse/rdpMouse.c b/xrdpmouse/rdpMouse.c index 555e1e3..e91a8ed 100644 --- a/xrdpmouse/rdpMouse.c +++ b/xrdpmouse/rdpMouse.c @@ -98,8 +98,22 @@ l_bound_by(int val, int low, int high) static void rdpEnqueueMotion(DeviceIntPtr device, int x, int y) { + int buttons; + int flags; + ValuatorMask *mask; + LLOGLN(10, ("rdpEnqueueMotion:")); - xf86PostMotionEvent(device, TRUE, 0, 2, x, y); + /* Xorg 1.9.0+ see git sha1 675f4a8 */ + buttons = 0; + flags = POINTER_SCREEN | POINTER_ABSOLUTE | POINTER_NORAW; + mask = valuator_mask_new(2); + if (mask != NULL) + { + valuator_mask_set(mask, 0, x); + valuator_mask_set(mask, 1, y); + QueuePointerEvents(device, MotionNotify, buttons, flags, mask); + valuator_mask_free(&mask); + } } /******************************************************************************/
How do you apply this patch. I RDP from Windows Desktop to my Ubuntu Laptop. Accessing the Ubuntu Laptop works fine. How do I fix this in Windows RDP?
looks like this may be fixed in chromium 94 see commit 09ee8be7e4acfb777feae6584a398694d5a72abb https://github.com/chromium/chromium/commit/09ee8be7e4acfb777feae6584a398694d5a72abb