From 932aa116df985d21114dcad8c2518f69f8a6a39e Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Fri, 21 Oct 2011 19:09:14 +0000 Subject: utf8 OSX - disabling utf8 at KeyUp, otherwise TextObject doesn't work. This bug is also present in Windows, so I believe the real bug is in Linux (and in the text object input). Also Cmd+C and Cmd+v doesn't work for utf8 yet. --- intern/ghost/intern/GHOST_SystemCocoa.mm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm index c3c0c591444..1a6aaadb506 100644 --- a/intern/ghost/intern/GHOST_SystemCocoa.mm +++ b/intern/ghost/intern/GHOST_SystemCocoa.mm @@ -1707,10 +1707,6 @@ GHOST_TSuccess GHOST_SystemCocoa::handleKeyEvent(void *eventPtr) } } - /* XXX the above code gives us the right utf8, however if we pass it along Font Object doesn't work. - let's leave utf8 disabled for OSX before we fix that */ - utf8_buf[0] = '\0';//to be removed once things are working - if ((keyCode == GHOST_kKeyQ) && (m_modifierMask & NSCommandKeyMask)) break; //Cmd-Q is directly handled by Cocoa @@ -1718,8 +1714,10 @@ GHOST_TSuccess GHOST_SystemCocoa::handleKeyEvent(void *eventPtr) pushEvent( new GHOST_EventKey([event timestamp]*1000, GHOST_kEventKeyDown, window, keyCode, ascii, utf8_buf) ); //printf("Key down rawCode=0x%x charsIgnoringModifiers=%c keyCode=%u ascii=%i %c utf8=%s\n",[event keyCode],[charsIgnoringModifiers length]>0?[charsIgnoringModifiers characterAtIndex:0]:' ',keyCode,ascii,ascii, utf8_buf); } else { + // XXX Font Object bug - backspace or adding new chars are being computed twice (keydown and keyup) + utf8_buf[0] = '\0'; pushEvent( new GHOST_EventKey([event timestamp]*1000, GHOST_kEventKeyUp, window, keyCode, ascii, utf8_buf) ); - //printf("Key down rawCode=0x%x charsIgnoringModifiers=%c keyCode=%u ascii=%i %c utf8=%s\n",[event keyCode],[charsIgnoringModifiers length]>0?[charsIgnoringModifiers characterAtIndex:0]:' ',keyCode,ascii,ascii, utf8_buf); + //printf("Key up rawCode=0x%x charsIgnoringModifiers=%c keyCode=%u ascii=%i %c utf8=%s\n",[event keyCode],[charsIgnoringModifiers length]>0?[charsIgnoringModifiers characterAtIndex:0]:' ',keyCode,ascii,ascii, utf8_buf); } break; -- cgit v1.2.3