From 68a591210b35af05ce436338f9938a9350507133 Mon Sep 17 00:00:00 2001 From: crs Date: Sat, 18 Jan 2003 14:31:54 +0000 Subject: [PATCH] Was forcing modifier keys that have no effect on the keysym lookup to be up when synthesizing key events. Now leaving those modifiers in their current state. --- lib/platform/CXWindowsSecondaryScreen.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/platform/CXWindowsSecondaryScreen.cpp b/lib/platform/CXWindowsSecondaryScreen.cpp index 996fb445..80a74d43 100644 --- a/lib/platform/CXWindowsSecondaryScreen.cpp +++ b/lib/platform/CXWindowsSecondaryScreen.cpp @@ -628,6 +628,16 @@ CXWindowsSecondaryScreen::mapKey(Keystrokes& keys, KeyCode& keycode, required = clearBits(required, modifierBit); LOG((CLOG_DEBUG2 "desired = 0x%04x, current = 0x%04x", desired, m_mask)); + // some modifiers never have an effect on keysym lookup. leave + // those modifiers alone by copying their state from m_mask to + // desired. + desired = assignBits(desired, + ControlMask | + m_altMask | + m_metaMask | + m_superMask | + m_scrollLockMask, m_mask); + // add the key events required to get to the modifier state // necessary to generate an event yielding id. also save the // key events required to restore the state. if the key is