XQuartz: Force a keymap resync on the first keypress to workaround XKB mucking with our keymap.

We need to find a better way to work with XKB on this.
(cherry picked from commit ceaa5c779ceed3de5ea53727649613be3133b24e)
This commit is contained in:
Jeremy Huddleston 2009-09-27 18:25:57 -07:00
parent 226b1033b4
commit 558d803b29

View File

@ -1180,6 +1180,17 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe
break;
case NSKeyDown: case NSKeyUp:
{
/* XKB clobbers our keymap at startup, so we need to force it on the first keypress.
* TODO: Make this less of a kludge.
*/
static int force_resync_keymap = YES;
if(force_resync_keymap) {
DarwinSendDDXEvent(kXquartzReloadKeymap, 0);
force_resync_keymap = NO;
}
}
if(darwinSyncKeymap) {
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050
TISInputSourceRef key_layout = TISCopyCurrentKeyboardLayoutInputSource();