--- rxvt-unicode/src/keyboard.C 2005/01/16 18:05:37 1.2 +++ rxvt-unicode/src/keyboard.C 2005/01/16 18:48:04 1.3 @@ -230,29 +230,6 @@ purge_duplicate_keymap (); -#if TO_BE_DONE_INSIDE_dispatch - for (i = 0; i < keymap.size (); ++i) - { - keysym_t *key = keymap[i]; - - assert (bitcount (term_->ModMetaMask) == 1 && "call me after ModMetaMask was set!"); - - if (key->state & MetaMask) - { - //key->state &= ~MetaMask; - key->state |= term_->ModMetaMask; - } - - assert (bitcount (term_->ModNumLockMask) == 1 && "call me after ModNumLockMask was set!"); - - if (key->state & NumLockMask) - { - //key->state &= ~NumLockMask; - key->state |= term_->ModNumLockMask; - } - } -#endif - setup_hash (); } @@ -261,6 +238,15 @@ { assert (hash[0] == 0 && "register_done() need to be called"); + if (state & term->ModMetaMask) + state |= MetaMask; + + if (state & term->ModNumLockMask) + state |= NumLockMask; + + if (!!(term->priv_modes & PrivMode_aplKP) != !!(state & ShiftMask)) + state |= AppKeypadMask; + int index = find_keysym (keysym, state); if (index >= 0)