[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

rdesktop keyboard is hardware dependent



Hello
 
There is a problem with the rdesktop keyboard management. When rdesktop is run from the Linux main consol (the Linux PC itself) everything is fine. But when rdesktop is run from an X terminal the keyboard is totally broken.
 
Of course this problem can be solved by compiling rdesktop with BROKEN_X_KB defined. But in this case the needed kbcodes.h file is nationality dependent. Furthermore the rdesktop binary fits for the X terminal but not for the Linux main consol !
 
To solve this problem the rdesktop keyboard management must be deeply modified.
 
The current keyboard decoding method:
When a key is pressed ui_process_event function gives the keycode of this key (this keycode is hardware dependent). This keycode is translated in scancode and this scancode is sent to Windows by the rdp_send_input function (with RDP_INPUT_SCANCODE).
This method is hardware dependent.
 
Guideline for an alternative method:
When a key is pressed ui_process_event function gives the keycode of this key. The keycode is translated in keysym (symbolic code) by using XKeycodeToKeysym X function. Then the keysym code is translated in Windows virtual keycode (given in table 8-97 of T128 recommendations). This virtual keycode is sent to windows by the rdp_send_input function (with RDP_INPUT_VIRTKEY).
I have yet implemented this method but I suppose this is a better way.
 
Does somebody able to create a patch ?
 
Vincent
 
 
 
 
 deep implementation problem about keyboard management. Indeed rdesktop sends keyboard event