Commit Graph

7 Commits

Author SHA1 Message Date
crs bdd3635f4b Added support for X11 compose key (Multi_key). This change fixes
the handling of compose key sequences.  The key presses were
suppressed but not the corresponding releases, confusing the
clients.  It also adds support for generating keysyms via the
compose key if the necessary dead keys or Mode_switch are not
available.
2004-11-04 21:26:43 +00:00
crs 519871fe15 Changed X11 key mapping to fallback to the modifier keysym with
the opposite handedness if the desired handedness is missing.
For example, if Alt_R is unmapped as it often is on keyboards
with Mode_switch, the client will use Alt_L if it is mapped
when told to synthesize Alt_R.  This should fix handling of
AltGr sent from a win32 server.  AltGr is literally just
Control_L and Alt_R and, previously, an X11 client without
Alt_R mapped would only simulate Control_L.  This does not
address the fact that the user may really just want the Alt
modifier;  there are already hueristics to attempt to figure
that out.
2004-10-30 16:41:36 +00:00
crs 91d1fcf38d Fixed bugs in configuration. Wasn't doing configuration for DPMS
and Xinerama correctly.  Also was using '#if defined(...)' instead
of '#if ...' for testing configure macros in some places.  This
yields the wrong answer if the macro is set to 0, which means
missing/disabled.
2004-10-28 21:40:56 +00:00
crs f65d53d06a Fixed dead key and AltGr+shift handling on X windows. Also fixed
bug with decomposing characters that have no direct key mapping
but do have a direct key mapping for the character with the opposite
case.
2004-10-24 18:18:01 +00:00
crs cfb082f306 Added ISO_Level3_Shift as a synonym for Mode_switch. I've no idea
if this will work as hoped but I've seen documentation that XFree
4.3 uses ISO_Level3_Shift rather than Mode_switch.
2004-03-28 14:53:01 +00:00
crs e2a31e8b66 Converted win32 to new keyboard state tracking design. Also
changed locking to screen so that keys no longer count (only
mouse buttons and scroll lock toggled on).  This is to deal
with the unreliability of key event reporting which can leave
us locked to a screen with no key physically pressed.  The
result of this is that clients get key repeats and releases
without the corresponding key press.  CKeyState handles this
by discarding repeat/release events on keys it hasn't seen go
down.  Also made a few other minor fixes to win32 keyboard
handling.
2004-03-26 20:59:26 +00:00
crs 8d99fd2511 Checkpoint. Converted X11 to new keyboard state tracking design.
This new design is simpler.  For keyboard support, clients need only
implement 4 virtual methods on a class derived from CKeyState and
one trivial method in the class derived from CPlatformScreen, which
is now the superclass of platform screens instead of IPlatformScreen.
Keyboard methods have been removed from IPlatformScreen, IPrimaryScreen
and ISecondaryScreen.  Also, all keyboard state tracking is now in
exactly one place (the CKeyState subclass) rather than in CScreen,
the platform screen, and the key mapper.  Still need to convert Win32.
2004-03-21 20:01:41 +00:00
Renamed from lib/platform/CXWindowsKeyMapper.cpp (Browse further)