[gnome-remote-desktop] session-rdp: Fall back to system pointer when pointer size is too large



commit 36328613cdbbc6a24c3ba156119893f9d6d82ff6
Author: Pascal Nowack <Pascal Nowack gmx de>
Date:   Mon Nov 30 18:46:05 2020 +0100

    session-rdp: Fall back to system pointer when pointer size is too large
    
    Currently, when a mouse pointer bitmap is larger than 384x384 pixels,
    g-r-d skips the update, since RDP only handles pointer updates up to
    384x384 pixels.
    This has the disadvantage that cases can occur where g-r-d hides the
    mouse pointer due to a transparent bitmap, but then not revoke that
    state when the mouse pointer becomes visible again and the pointer
    bitmap is too large.
    
    Handle such cases better by falling back to the system pointer bitmap
    on the client side in such cases.

 src/grd-session-rdp.c | 9 +++++++++
 1 file changed, 9 insertions(+)
---
diff --git a/src/grd-session-rdp.c b/src/grd-session-rdp.c
index c24dbef..7c0e099 100644
--- a/src/grd-session-rdp.c
+++ b/src/grd-session-rdp.c
@@ -290,6 +290,15 @@ grd_session_rdp_update_pointer (GrdSessionRdp *session_rdp,
   /* RDP only handles pointer bitmaps up to 384x384 pixels */
   if (width > 384 || height > 384)
     {
+      if (session_rdp->pointer_type != POINTER_TYPE_DEFAULT)
+        {
+          session_rdp->last_pointer = NULL;
+          session_rdp->pointer_type = POINTER_TYPE_DEFAULT;
+          pointer_system.type = SYSPTR_DEFAULT;
+
+          rdp_update->pointer->PointerSystem (peer->context, &pointer_system);
+        }
+
       g_free (data);
       return;
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]