… | |
… | |
260 | bool |
260 | bool |
261 | keyboard_manager::dispatch (rxvt_term *term, KeySym keysym, unsigned int state) |
261 | keyboard_manager::dispatch (rxvt_term *term, KeySym keysym, unsigned int state) |
262 | { |
262 | { |
263 | assert (hash[0] == 0 && "register_done() need to be called"); |
263 | assert (hash[0] == 0 && "register_done() need to be called"); |
264 | |
264 | |
|
|
265 | state &= OtherModMask; // mask out uninteresting modifiers |
|
|
266 | |
265 | if (state & term->ModMetaMask) state |= MetaMask; |
267 | if (state & term->ModMetaMask) state |= MetaMask; |
266 | if (state & term->ModNumLockMask) state |= NumLockMask; |
268 | if (state & term->ModNumLockMask) state |= NumLockMask; |
267 | if (state & term->ModLevel3Mask) state |= Level3Mask; |
269 | if (state & term->ModLevel3Mask) state |= Level3Mask; |
268 | |
270 | |
269 | if (!!(term->priv_modes & PrivMode_aplKP) != !!(state & ShiftMask)) |
271 | if (!!(term->priv_modes & PrivMode_aplKP) != !!(state & ShiftMask)) |
… | |
… | |
457 | for (; index < end; ++index) |
459 | for (; index < end; ++index) |
458 | { |
460 | { |
459 | keysym_t *key = keymap [index]; |
461 | keysym_t *key = keymap [index]; |
460 | |
462 | |
461 | if (key->keysym <= keysym && keysym < key->keysym + key->range |
463 | if (key->keysym <= keysym && keysym < key->keysym + key->range |
|
|
464 | #if 0 // disabled because the custom ekymap does not know the builtin keymap |
462 | // match only the specified bits in state and ignore others |
465 | // match only the specified bits in state and ignore others |
463 | && (key->state & state) == key->state) |
466 | && (key->state & state) == key->state |
|
|
467 | #else // re-enable this part once the builtin keymap is handled here, too |
|
|
468 | && key->state == state |
|
|
469 | #endif |
|
|
470 | ) |
464 | return index; |
471 | return index; |
465 | } |
472 | } |
466 | |
473 | |
467 | return -1; |
474 | return -1; |
468 | } |
475 | } |