AcceleratorMap g_keyup_accelerators;
bool Keys_press( PressedKeys::Keys& keys, guint keyval ){
- if ( keys.insert( keyval ).second ) {
+ if ( keys.insert( gdk_keyval_to_upper( keyval ) ).second ) {
return AcceleratorMap_activate( g_keydown_accelerators, accelerator_for_event_key( keyval, 0 ) );
}
return g_keydown_accelerators.find( accelerator_for_event_key( keyval, 0 ) ) != g_keydown_accelerators.end();
}
bool Keys_release( PressedKeys::Keys& keys, guint keyval ){
- if ( keys.erase( keyval ) != 0 ) {
+ if ( keys.erase( gdk_keyval_to_upper( keyval ) ) != 0 ) {
return AcceleratorMap_activate( g_keyup_accelerators, accelerator_for_event_key( keyval, 0 ) );
}
return g_keyup_accelerators.find( accelerator_for_event_key( keyval, 0 ) ) != g_keyup_accelerators.end();
unsigned int override_handler = window.connect( "key_press_event", G_CALLBACK( override_global_accelerators ), 0 );
g_object_set_data( G_OBJECT( window ), "override_handler", gint_to_pointer( override_handler ) );
+ GlobalPressedKeys_connect( window );
+
unsigned int special_key_press_handler = window.connect( "key_press_event", G_CALLBACK( accelerator_key_event ), &g_special_accelerators );
g_object_set_data( G_OBJECT( window ), "special_key_press_handler", gint_to_pointer( special_key_press_handler ) );
-
- GlobalPressedKeys_connect( window );
#else
unsigned int key_press_handler = window.connect( "key_press_event", G_CALLBACK( accelerator_key_event ), &g_keydown_accelerators );
unsigned int key_release_handler = window.connect( "key_release_event", G_CALLBACK( accelerator_key_event ), &g_keyup_accelerators );