[Bf-blender-cvs] [96722c2] input_method_editor_partial_support: IME: Cleanup wmIMEData struct

Severin noreply at git.blender.org
Thu Dec 4 23:39:59 CET 2014


Commit: 96722c26d7abd11f203793f814001a91cf9c654d
Author: Severin
Date:   Thu Dec 4 23:38:36 2014 +0100
Branches: input_method_editor_partial_support
https://developer.blender.org/rB96722c26d7abd11f203793f814001a91cf9c654d

IME: Cleanup wmIMEData struct

===================================================================

M	source/blender/editors/interface/interface_handlers.c
M	source/blender/editors/interface/interface_widgets.c
M	source/blender/windowmanager/WM_types.h
M	source/blender/windowmanager/intern/wm_event_system.c

===================================================================

diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 1046646..bcf95b8 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -2636,7 +2636,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
 
 	wmWindow *win = CTX_wm_window(C);
 	wmIMEData *ime_data = win->ime_data;
-	bool is_ime_composing = ime_data && ime_data->is_ime_composite;
+	bool is_ime_composing = ime_data && ime_data->is_ime_composing;
 
 	switch (event->type) {
 		case MOUSEMOVE:
@@ -2887,7 +2887,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
 			ui_textedit_delete_selection(but, data);
 		if (event->type == WM_IME_COMPOSITE_EVENT && ime_data->result_len)
 			ui_textedit_type_buf(but, data,
-								 ime_data->result,
+			                     ime_data->str_result,
 								 ime_data->result_len);
 	}
 	else if (event->type == WM_IME_COMPOSITE_END) {
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index 2cb1b29..13d8cb8 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -1241,7 +1241,7 @@ static void widget_draw_text_ime_underline(uiFontStyle *fstyle, uiWidgetColors *
 {
 	int ofs_x, width;
 	int rect_x = BLI_rcti_size_x(rect);
-	int target_start = ime_data->target_start, target_end = ime_data->target_end;
+	int sel_start = ime_data->sel_start, sel_end = ime_data->sel_end;
 
 	if (drawstr[0] != 0) {
 		if (but->pos >= but->ofs) {
@@ -1258,19 +1258,19 @@ static void widget_draw_text_ime_underline(uiFontStyle *fstyle, uiWidgetColors *
 		UI_text_draw_underline(rect->xmin + ofs_x, rect->ymin + 6 * U.pixelsize, min_ii(width, rect_x - 2) - ofs_x, 1);
 
 		/* draw the thick line */
-		if (target_start != -1 && target_end != -1) {
-			target_end -= target_start;
-			target_start += but->pos;
+		if (sel_start != -1 && sel_end != -1) {
+			sel_end -= sel_start;
+			sel_start += but->pos;
 
-			if (target_start >= but->ofs) {
-				ofs_x = BLF_width(fstyle->uifont_id, drawstr + but->ofs, target_start - but->ofs);
+			if (sel_start >= but->ofs) {
+				ofs_x = BLF_width(fstyle->uifont_id, drawstr + but->ofs, sel_start - but->ofs);
 			}
 			else {
 				ofs_x = 0;
 			}
 
 			width = BLF_width(fstyle->uifont_id, drawstr + but->ofs,
-			                  target_end + target_start - but->ofs);
+			                  sel_end + sel_start - but->ofs);
 
 			UI_text_draw_underline(rect->xmin + ofs_x, rect->ymin + 6 * U.pixelsize, min_ii(width, rect_x - 2) - ofs_x, 2);
 		}
@@ -1321,7 +1321,7 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
 			if (ime_data && ime_data->composite_len) {
 				/* insert composite string into cursor pos */
 				BLI_snprintf(drawstr, UI_MAX_DRAW_STR, "%s%s%s",
-				             but->editstr, ime_data->composite,
+				             but->editstr, ime_data->str_composite,
 				             but->editstr + but->pos);
 			}
 			else
@@ -1364,8 +1364,8 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
 
 #ifdef WITH_INPUT_IME
 		/* if is ime compositing, move the cursor */
-		if (ime_data && ime_data->composite_len && ime_data->cursor_position != -1) {
-			vpos += ime_data->cursor_position;
+		if (ime_data && ime_data->composite_len && ime_data->cursor_pos != -1) {
+			vpos += ime_data->cursor_pos;
 		}
 #endif
 
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 47b110e..d04ce28 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -470,23 +470,6 @@ typedef struct wmTabletData {
 	float Ytilt;		/* as above */
 } wmTabletData;
 
-/* similar to GHOST_TEventImeData */
-/* XXX - names, comments */
-typedef struct wmIMEData {
-	size_t result_len, composite_len;
-
-	char *result;           /* utf8 encoding */
-	char *composite;        /* utf8 encoding */
-
-	int cursor_position;    /* cursor position in the IME composition. */
-	int target_start;       /* position of the beginning of the selection */
-	int target_end;         /* position of the end of the selection */
-	int cursor_xy[2];       /* text cursor position */
-	int cursor_pos_text;    /* cursor pos in text (console space only) */
-	
-	bool is_ime_composite;  /* for uiBut only */
-} wmIMEData;
-
 typedef enum {  /* motion progress, for modal handlers */
 	P_NOT_STARTED,
 	P_STARTING,    /* <-- */
@@ -587,6 +570,22 @@ typedef struct wmOperatorType {
 
 } wmOperatorType;
 
+/* *********** Input Method Editor (IME) *********** */
+
+/* similar to GHOST_TEventImeData */
+typedef struct wmIMEData {
+	size_t result_len, composite_len;
+
+	char *str_result;           /* utf8 encoding */
+	char *str_composite;        /* utf8 encoding */
+
+	int cursor_pos;             /* cursor position in the IME composition. */
+	int sel_start;              /* beginning of the selection */
+	int sel_end;                /* end of the selection */
+
+	bool is_ime_composing;
+} wmIMEData;
+
 /* **************** Paint Cursor ******************* */
 
 typedef void (*wmPaintCursorDraw)(struct bContext *C, int, int, void *customdata);
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 5eec18d..a42f97b 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -3378,7 +3378,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
 		{
 			event.val = KM_PRESS;
 			win->ime_data = customdata;
-			win->ime_data->is_ime_composite = true;
+			win->ime_data->is_ime_composing = true;
 			event.type = WM_IME_COMPOSITE_START;
 			wm_event_add(win, &event);
 			break;
@@ -3393,7 +3393,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
 		case GHOST_kEventImeCompositionEnd:
 		{
 			event.val = KM_PRESS;
-			win->ime_data->is_ime_composite = false;
+			win->ime_data->is_ime_composing = false;
 			event.type = WM_IME_COMPOSITE_END;
 			wm_event_add(win, &event);
 			break;




More information about the Bf-blender-cvs mailing list