We can't really know the client side keymaps, so we use the keysym
as the hardware keycode (essentially claiming to have a keyboard with
one key for all possible keysyms). This is not ideal, but its hard to
do better with no knowledge of the client side keyboard mappings.
(And html keyboard events suck badly...)
event->key.window = g_object_ref (window);
event->key.time = message->base.time;
event->key.keyval = message->key.key;
event->key.window = g_object_ref (window);
event->key.time = message->base.time;
event->key.keyval = message->key.key;
+ event->key.hardware_keycode = message->key.key;
event->key.length = 0;
gdk_event_set_device (event, display->core_pointer);
event->key.length = 0;
gdk_event_set_device (event, display->core_pointer);
GdkKeymapKey **keys,
gint *n_keys)
{
GdkKeymapKey **keys,
gint *n_keys)
{
- *n_keys = 0;
- return FALSE;
+ if (n_keys)
+ *n_keys = 1;
+ if (keys)
+ {
+ *keys = g_new0 (GdkKeymapKey, 1);
+ (*keys)->keycode = keyval;
+ }
+
+ return TRUE;
guint **keyvals,
gint *n_entries)
{
guint **keyvals,
gint *n_entries)
{
- *n_entries = 0;
- return FALSE;
+ if (n_entries)
+ *n_entries = 1;
+ if (keys)
+ {
+ *keys = g_new0 (GdkKeymapKey, 1);
+ (*keys)->keycode = hardware_keycode;
+ }
+ if (keyvals)
+ {
+ *keyvals = g_new0 (guint, 1);
+ (*keyvals)[0] = hardware_keycode;
+ }
+ return TRUE;
}
static guint
gdk_broadway_keymap_lookup_key (GdkKeymap *keymap,
const GdkKeymapKey *key)
{
}
static guint
gdk_broadway_keymap_lookup_key (GdkKeymap *keymap,
const GdkKeymapKey *key)
{
gint *level,
GdkModifierType *consumed_modifiers)
{
gint *level,
GdkModifierType *consumed_modifiers)
{
+ if (keyval)
+ *keyval = hardware_keycode;
+ if (effective_group)
+ *effective_group = 0;
+ if (level)
+ *level = 0;
+ return TRUE;
gdk_broadway_keymap_map_virtual_modifiers (GdkKeymap *keymap,
GdkModifierType *state)
{
gdk_broadway_keymap_map_virtual_modifiers (GdkKeymap *keymap,
GdkModifierType *state)
{