After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 769025 - Extended RDP scancodes are not handled properly
Extended RDP scancodes are not handled properly
Status: RESOLVED FIXED
Product: vinagre
Classification: Applications
Component: RDP
unspecified
Other Linux
: Normal normal
: ---
Assigned To: vinagre-maint
vinagre-maint
Depends on:
Blocks:
 
 
Reported: 2016-07-21 09:18 UTC by Michał Kępień
Modified: 2016-07-28 14:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed patch against git master (1.18 KB, patch)
2016-07-21 09:18 UTC, Michał Kępień
none Details | Review
Proposed patch against git master (1.19 KB, patch)
2016-07-28 06:44 UTC, Michał Kępień
committed Details | Review

Description Michał Kępień 2016-07-21 09:18:04 UTC
Created attachment 331860 [details] [review]
Proposed patch against git master

Vinagre incorrectly handles extended RDP scancodes, which makes it impossible to use some keys (e.g. both Super keys, right Alt, right Control) in RDP sessions.  When compiled against FreeRDP 1.0, the value stored in frdp_event->extended is ignored, while an extended event's flags should have the KDB_FLAGS_EXTENDED bit set.  When compiled against FreeRDP 1.1, the value returned by freerdp_keyboard_get_rdp_scancode_from_x11_keycode() is incorrectly stored verbatim into frdp_event->code as it contains both an extended scancode indicator and the actual scancode.

Attached is a patch against git master which fixes this issue.
Comment 1 David King 2016-07-27 14:01:53 UTC
Review of attachment 331860 [details] [review]:

::: plugins/rdp/vinagre-rdp-tab.c
@@ +706,3 @@
   VinagreRdpTabPrivate *priv = rdp_tab->priv;
   frdpEventKey         *frdp_event;
+  UINT16                scancode;

I guess that, as the code below is wrapped in an ifdef, this should be too.
Comment 2 Michał Kępień 2016-07-28 06:44:18 UTC
Created attachment 332255 [details] [review]
Proposed patch against git master
Comment 3 Michał Kępień 2016-07-28 06:44:47 UTC
(In reply to David King from comment #1)
> Review of attachment 331860 [details] [review] [review]:
> 
> ::: plugins/rdp/vinagre-rdp-tab.c
> @@ +706,3 @@
>    VinagreRdpTabPrivate *priv = rdp_tab->priv;
>    frdpEventKey         *frdp_event;
> +  UINT16                scancode;
> 
> I guess that, as the code below is wrapped in an ifdef, this should be too.

Indeed, fixed.
Comment 4 David King 2016-07-28 14:18:04 UTC
Review of attachment 332255 [details] [review]:

Pushed to master as commit 69acae5330c848cb7bf4094ebce34ccad798c6ca.