[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