• 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
..
Xext Loading commit data...
aalib Loading commit data...
ataricommon Loading commit data...
bwindow Loading commit data...
dc Loading commit data...
dga Loading commit data...
directfb Loading commit data...
dummy Loading commit data...
fbcon Loading commit data...
gapi Loading commit data...
gem Loading commit data...
ggi Loading commit data...
ipod Loading commit data...
maccommon Loading commit data...
macdsp Loading commit data...
macrom Loading commit data...
nanox Loading commit data...
nds Loading commit data...
os2fslib Loading commit data...
photon Loading commit data...
picogui Loading commit data...
ps2gs Loading commit data...
qtopia Loading commit data...
quartz Loading commit data...
riscos Loading commit data...
svga Loading commit data...
symbian Loading commit data...
vgl Loading commit data...
wincommon Loading commit data...
windib Loading commit data...
windx5 Loading commit data...
wscons Loading commit data...
x11 Loading commit data...
xbios Loading commit data...
SDL_RLEaccel.c Loading commit data...
SDL_RLEaccel_c.h Loading commit data...
SDL_blit.c Loading commit data...
SDL_blit.h Loading commit data...
SDL_blit_0.c Loading commit data...
SDL_blit_1.c Loading commit data...
SDL_blit_A.c Loading commit data...
SDL_blit_N.c Loading commit data...
SDL_bmp.c Loading commit data...
SDL_cursor.c Loading commit data...
SDL_cursor_c.h Loading commit data...
SDL_gamma.c Loading commit data...
SDL_glfuncs.h Loading commit data...
SDL_leaks.h Loading commit data...
SDL_pixels.c Loading commit data...
SDL_pixels_c.h Loading commit data...
SDL_stretch.c Loading commit data...
SDL_stretch_c.h Loading commit data...
SDL_surface.c Loading commit data...
SDL_sysvideo.h Loading commit data...
SDL_video.c Loading commit data...
SDL_yuv.c Loading commit data...
SDL_yuv_mmx.c Loading commit data...
SDL_yuv_sw.c Loading commit data...
SDL_yuv_sw_c.h Loading commit data...
SDL_yuvfuncs.h Loading commit data...
blank_cursor.h Loading commit data...
default_cursor.h Loading commit data...
e_log.h Loading commit data...
e_pow.h Loading commit data...
e_sqrt.h Loading commit data...
math_private.h Loading commit data...
mmx.h Loading commit data...