[Bf-committers] UTF8 text input status (on OS X)

Dalai Felinto dfelinto at gmail.com
Sat Nov 19 02:09:16 CET 2011


Hi Brecht,
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.

--
Dalai
(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:
>> Hi
>>
>>
>>> 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
>>> platforms?
>>>
>>
>> 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,
>> Alex
>
> --
> - Campbell
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list