1.1 --- a/src/display.c Sun Jun 18 12:01:53 2006 +0000
1.2 +++ b/src/display.c Sun Jan 14 11:43:00 2007 +0000
1.5 - * $Id: display.c,v 1.2 2006-06-18 12:01:50 nkeynes Exp $
1.6 + * $Id: display.c,v 1.3 2007-01-11 06:51:52 nkeynes Exp $
1.8 * Generic support for keyboard and other input sources. The active display
1.9 * driver is expected to deliver events here, where they're translated and
1.11 gboolean input_register_key( const gchar *keysym, input_key_callback_t callback,
1.12 void *data, uint32_t value )
1.15 if( display_driver == NULL || keysym == NULL )
1.16 return FALSE; /* No display driver */
1.17 - uint16_t keycode = display_driver->resolve_keysym(keysym);
1.18 - if( keycode == 0 )
1.19 - return FALSE; /* Invalid keysym */
1.21 - struct keymap_entry *key = input_create_key( keycode );
1.22 - key->callback = callback;
1.24 - key->value = value;
1.25 + gchar **strv = g_strsplit(keysym, ",", 16);
1.27 + while( *s != NULL ) {
1.28 + uint16_t keycode = display_driver->resolve_keysym(g_strstrip(*s));
1.29 + if( keycode == 0 )
1.30 + return FALSE; /* Invalid keysym */
1.32 + struct keymap_entry *key = input_create_key( keycode );
1.33 + key->callback = callback;
1.35 + key->value = value;