Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-10-20 15:18:57 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-10-20 15:18:57 +0400
commit2f92b5bc3fa11609e07ba7bc0859275ee3ccf12b (patch)
tree7e9ac0c7bb6f094f6b61b606df92157dbaf80c8b
parent3d501ca70fb3811ced1fdad5e4a170d173531a94 (diff)
fixes for unicode input, should work for operator textinput now.
-rw-r--r--source/blender/editors/curve/editfont.c2
-rw-r--r--source/blender/editors/interface/interface_handlers.c4
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c2
3 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c
index dff5be059c3..c80f5c85c25 100644
--- a/source/blender/editors/curve/editfont.c
+++ b/source/blender/editors/curve/editfont.c
@@ -1289,7 +1289,7 @@ static int insert_text_invoke(bContext *C, wmOperator *op, wmEvent *evt)
else if(event==BACKSPACEKEY)
ascii= 0;
- if(val && ascii) {
+ if(val && (ascii || evt->utf8_buf[0])) {
/* handle case like TAB (== 9) */
if( (ascii > 31 && ascii < 254 && ascii != 127) ||
(ascii==13) ||
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 1f30f8a5109..c02bbafce15 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -1930,7 +1930,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
break;
}
- if(event->ascii && (retval == WM_UI_HANDLER_CONTINUE)) {
+ if((event->ascii || event->utf8_buf[0]) && (retval == WM_UI_HANDLER_CONTINUE)) {
char ascii = event->ascii;
/* exception that's useful for number buttons, some keyboard
@@ -1939,7 +1939,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
if(event->type == PADPERIOD && ascii == ',')
ascii = '.';
- if(event->utf8_buf[0] || 1) {
+ if(event->utf8_buf[0]) {
/* keep this printf until utf8 is well tested */
printf("%s: utf8 char '%s'\n", __func__, event->utf8_buf);
// strcpy(event->utf8_buf, "12345");
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 7dcb4cf091f..6fd84b4c315 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1146,7 +1146,7 @@ static int wm_eventmatch(wmEvent *winevent, wmKeyMapItem *kmi)
/* the matching rules */
if(kmitype==KM_TEXTINPUT)
- if(ISTEXTINPUT(winevent->type) && winevent->ascii) return 1;
+ if(ISTEXTINPUT(winevent->type) && (winevent->ascii || winevent->utf8_buf[0])) return 1;
if(kmitype!=KM_ANY)
if(winevent->type!=kmitype) return 0;