• Ryan C. Gordon's avatar
    Significantly improved XIM support. · daddb897
    Ryan C. Gordon authored
       Fixes Bugzilla #429.
    
    
    Selected notes from the patch's README:
    
    = FIXES =
    
    This patch fixes the above issues as follows.
    
    == X11 events ==
    
    Moved XFilterEvent just after XNextEvent so that all events are passed
    to it.  Also, XFilterEvent will receive masks indicated by IM through
    XNFilterEvents IC value as well as masks surpplied by SDL.
    
    X11_KeyRepeat is called between XNextEvent and XFilterEvent, after
    testing an event is a KeyRelease.  I'm not 100% comfortable to do so,
    but I couldn't find a better timing to call it, and use of the
    function is inevitable.
    
    == Xutf8LookupString ==
    
    Used a longer buffer to receive UTF-8 string.  If it is insufficient,
    a dynamic storage of the requested size will be allocated.  The
    initial size of the buffer is set to 32, because the Japanese text
    converted from the most widely used benchmark key sequence for
    Japanese IM, "WATASHINONAMAEHANAKANODESU." has ten Japanese characters
    in it, that occupies 30 bytes when encoded in UTF-8.
    
    == SDL_keysym.unicode ==
    
    On Windows version of SDL implementation, SDL_keysym.unicode stores
    UTF-16 encoded unicode characters, one UTF-16 encoding unit per an SDL
    event.  A Unicode supplementary characters are sent to an application
    as two events.  (One with a high surrogate and another with a low
    surrogate.)  The behavior seems reasonable since it is upward
    compatible with existing handling of BMP characters.
    
    I wrote a UTF-8 to UTF-16 conversion function for the purpose.  It is
    designed with the execution speed in mind, having a minimum set of
    features that my patch requires.
    
    --HG--
    branch : SDL-1.2
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402378
    daddb897
Name
Last commit
Last update
build-scripts Loading commit data...
docs Loading commit data...
include Loading commit data...
src Loading commit data...
test Loading commit data...
BUGS Loading commit data...
Borland.html Loading commit data...
Borland.zip Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
CWprojects.sea.bin Loading commit data...
INSTALL Loading commit data...
MPWmake.sea.bin Loading commit data...
Makefile.dc Loading commit data...
Makefile.ds Loading commit data...
Makefile.in Loading commit data...
Makefile.minimal Loading commit data...
README Loading commit data...
README-SDL.txt Loading commit data...
README.AmigaOS Loading commit data...
README.BeOS Loading commit data...
README.CVS Loading commit data...
README.DC Loading commit data...
README.MacOS Loading commit data...
README.MacOSX Loading commit data...
README.MiNT Loading commit data...
README.NDS Loading commit data...
README.NanoX Loading commit data...
README.OS2 Loading commit data...
README.PicoGUI Loading commit data...
README.Porting Loading commit data...
README.QNX Loading commit data...
README.Qtopia Loading commit data...
README.RISCOS Loading commit data...
README.SVN Loading commit data...
README.Symbian Loading commit data...
README.Watcom Loading commit data...
README.WinCE Loading commit data...
README.wscons Loading commit data...
SDL.qpg.in Loading commit data...
SDL.spec.in Loading commit data...
TODO Loading commit data...
VisualC.html Loading commit data...
VisualC.zip Loading commit data...
VisualCE.zip Loading commit data...
Watcom-OS2.zip Loading commit data...
Watcom-Win32.zip Loading commit data...
WhatsNew Loading commit data...
acinclude.m4 Loading commit data...
autogen.sh Loading commit data...
configure.in Loading commit data...
docs.html Loading commit data...
sdl-config.in Loading commit data...
sdl.m4 Loading commit data...
sdl.pc.in Loading commit data...