[Bf-committers] UTF8 text input status (on OS X)
dfelinto at gmail.com
Sat Nov 19 02:09:16 CET 2011
Tested the patch here it it works great.
To test it from any OSX:
option+e+a = á
option+i+o = ô
The only downside is that does not address the problem of korean,
japanese, ... probably because of the problems presented by Alex.
It's already an improvement though.
(a related OSX issue I have here: hold space and press backspace in
the Python Console. It will produce a lot of the 'square' chars).
2011/11/1 Campbell Barton <ideasman42 at gmail.com>:
> On Wed, Nov 2, 2011 at 1:08 PM, Alexandr Kuznetsov <kuzsasha at gmail.com> wrote:
>>> c) Typing with dead keys (e.g. ¨ + o => ö) didn't work for me. I
>>> managed to get it working using NSTextInput, patch here if people want
>>> to test, I'm not very confident that this doesn't break something, so
>>> some testing would be great: http://www.pasteall.org/25983/diff
>> I think this problem is much bigger here. The dead keys are typed before a
>> real key, but the composed UTF chars are store in the reverse order. Even
>> if we have a buffer for that, it won't solve many problems. For example
>> Chines and Japanese inputs require more closer interaction with the text,
>> rather than simply typing character. Different input methods exist for
>> different languages which are natively supported by OS. But because Blender
>> doesn't use native text fields, they must be implemented by ourselves. For
>> example, MS Pinpyin replaces typed latin characters into chinese when the
>> whole word is complete. Therefore Blender must expose more text interface
>> to Ghost. Ghost must be able to get the current line, cursor, visual
>> position of editing text and then push edited text back. I probably can
>> take care of this project, but it won't be until end of December. Plus I
>> don't know any hieroglyphics languages.
>> There is multiple cross platform implementations of IME. When we were
>> discussing this with JesterKing, he proposed to use SDL. But although it
>> might have ready solution, it is probably hard to integrate in our Ghost,
>> as all SDL must have its own loop.
>> (Anyway, when IME will be implemented, we might get speech recognition and
>> handwriting for free!!)
> If you want to test SDL text input you could try WITH_GHOST_SDL to
> build ghost against SDL rather then x11/win/cocoa.
> SDL1.3 has a Text Input event, but the text editing state needs to be
> set first so you're right that ghost would need to be aware and have
> some equivalent to SDL_StartTextInput / SDL_StopTextInput, rather then
> just passing events like it does now.
>> a) Uppercases character umlaut (e.g. Ü) are not rendered correctly in
>>> the user interface, they do show in 3D text and the text editor.
>>> Appears to be a text rendering problem that would happen on all
>> Yes. It is a problem on Windows also. Moreover it is a problem exist with
>> precomposed characters. Maybe it is problem of clipping? Anyway, maybe it
>> is good time to switch char render library as was discussed earlier to
>> support bidirectional text. Maybe there are more latent problem with the
>> rendering of hard characters like Chinese or multiple compositions.
>> Best Regards,
> - Campbell
> Bf-committers mailing list
> Bf-committers at blender.org
More information about the Bf-committers