Signed-off-by: Michael Jumper <zhangmaike@users.sourceforge.net>
#include <freerdp/locale/keyboard.h>
#include <freerdp/locale/keyboard.h>
/**
* Represents a keysym-to-scancode mapping for RDP, with extra information
* about the state of prerequisite keysyms.
/**
* Represents a keysym-to-scancode mapping for RDP, with extra information
* about the state of prerequisite keysyms.
#ifndef _GUAC_UNICODE_CONVTABLE_H
#define _GUAC_UNICODE_CONVTABLE_H
int keysym2uni(int keysym);
/* Keysym->unicode Exceptions tables */
#ifndef _GUAC_UNICODE_CONVTABLE_H
#define _GUAC_UNICODE_CONVTABLE_H
int keysym2uni(int keysym);
/* Keysym->unicode Exceptions tables */
-int keysym2uni_base[65536];// = { 0x0 };
-int keysym2uni_ext0[4096];// = { 0x0 };
-int keysym2uni_ext1[4096];// = { 0x0 };
-int keysym2uni_ext2[4096];// = { 0x0 };
-
-
+int keysym2uni_base[65536];
+int keysym2uni_ext0[4096];
+int keysym2uni_ext1[4096];
+int keysym2uni_ext2[4096];
/* Fill global tables, if needed (only on first call) */
void init_unicode_tables();
/* Fill global tables, if needed (only on first call) */
void init_unicode_tables();
/* Send actual key */
rdp_inst->input->KeyboardEvent(
/* Send actual key */
rdp_inst->input->KeyboardEvent(
- | (pressed ? KBD_FLAGS_DOWN : KBD_FLAGS_RELEASE),
- keysym_desc->scancode);
+ | (pressed ? KBD_FLAGS_DOWN : KBD_FLAGS_RELEASE),
+ keysym_desc->scancode);
- guac_client_log_info(client, "Base flags are %d", keysym_desc->flags);
+ guac_client_log_info(client, "Base flags are %d", keysym_desc->flags);
/* If defined, release any keys that were originally released */
if (keysym_desc->set_keysyms != NULL)
/* If defined, release any keys that were originally released */
if (keysym_desc->set_keysyms != NULL)
__guac_rdp_update_keysyms(client, keysym_desc->clear_keysyms, 1, 1);
__guac_rdp_update_keysyms(client, keysym_desc->clear_keysyms, 1, 1);
-
- /* /\* If undefined but has Alt-code, use Alt-Code *\/ */
- /* else if (keysym <= 0xFF) { */
-
- /* /\* NOTE: The Alt-codes are conveniently identical to keysyms. *\/ */
-
- /* /\* Only send Alt-code on press *\/ */
- /* if (pressed) */
- /* __guac_rdp_send_altcode(client, keysym); */
-
- /* } */
-
- /* /\* If no defined Alt-code, log warning *\/ */
- /* else */
- /* guac_client_log_info(client, "unmapped keysym: 0x%x", keysym); */
-
- /* Fall back to unicode events */
+ /* Fall back to unicode events if undefined inside current keymap */
int unicode_code = keysym2uni(keysym);
guac_client_log_info(client, "Translated keysym:0x%x to unicode:0x%x (pressed=%d flag=%d)",
keysym, unicode_code, pressed, pressed ? KBD_FLAGS_DOWN : KBD_FLAGS_RELEASE);
/* LibfreeRDP seems not to take into account the DOWN/RELEASE flags.
int unicode_code = keysym2uni(keysym);
guac_client_log_info(client, "Translated keysym:0x%x to unicode:0x%x (pressed=%d flag=%d)",
keysym, unicode_code, pressed, pressed ? KBD_FLAGS_DOWN : KBD_FLAGS_RELEASE);
/* LibfreeRDP seems not to take into account the DOWN/RELEASE flags.
- * So we send only the key once.
+ * So we send only on of the two key events.
*/
if (pressed) {
rdp_inst->input->UnicodeKeyboardEvent(
rdp_inst->input,
*/
if (pressed) {
rdp_inst->input->UnicodeKeyboardEvent(
rdp_inst->input,
- 0,//pressed ? KBD_FLAGS_DOW : KBD_FLAGS_RELEASE,
+ //pressed ? KBD_FLAGS_DOW : KBD_FLAGS_RELEASE, <- not
+ // taken into account
+ 0,
* ***** END LICENSE BLOCK ***** */
#include <freerdp/input.h>
* ***** END LICENSE BLOCK ***** */
#include <freerdp/input.h>
#include <freerdp/locale/keyboard.h>
#include "rdp_keymap.h"
#include <freerdp/locale/keyboard.h>
#include "rdp_keymap.h"
# Copyright (C) 2012 Ulteo SAS
# http://www.ulteo.com
# Author Jocelyn DELALANDE <j.delalande@ulteo.com> 2012
# Copyright (C) 2012 Ulteo SAS
# http://www.ulteo.com
# Author Jocelyn DELALANDE <j.delalande@ulteo.com> 2012
#
# Used to extract the keysym<->unicode mapping exceptions from
# unicode_exception.ini (can be found in Ulteo patched version of xrdp)
#
# Used to extract the keysym<->unicode mapping exceptions from
# unicode_exception.ini (can be found in Ulteo patched version of xrdp)
+#
+# Such an ini file can be found at
+# http://www.ulteo.com/home/en/download/sourcecode (xrdp folder)
+#
import sys
import ConfigParser
import sys
import ConfigParser