diff options
Diffstat (limited to 'source/blender/windowmanager/intern/wm_event_system.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 82284ef8d29..4239ccc1b69 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -3410,11 +3410,12 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U if (event.keymodifier == event.type) event.keymodifier = 0; - /* this case happened with an external numpad, it's not really clear - * why, but it's also impossible to map a key modifier to an unknown - * key, so it shouldn't harm */ - if (event.keymodifier == UNKNOWNKEY) - event.keymodifier = 0; + /* this case happens with an external numpad, and also when using 'dead keys' (to compose complex latin + * characters e.g.), it's not really clear why. + * Since it's impossible to map a key modifier to an unknown key, it shouldn't harm to clear it. */ + if (event.keymodifier == UNKNOWNKEY) { + evt->keymodifier = event.keymodifier = 0; + } /* if test_break set, it catches this. Do not set with modifier presses. XXX Keep global for now? */ if ((event.type == ESCKEY && event.val == KM_PRESS) && |