diff options
Diffstat (limited to 'source/blender/editors/interface/interface_handlers.c')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index b41fe7b9b7d..cebf4f255f8 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -51,7 +51,9 @@ #include "ED_screen.h" #include "UI_interface.h" -#include "UI_text.h" + +#include "BLF_api.h" + #include "interface_intern.h" #include "RNA_access.h" @@ -807,14 +809,17 @@ static int ui_textedit_delete_selection(uiBut *but, uiHandleButtonData *data) static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, short x) { + uiStyle *style= U.uistyles.first; // XXX pass on as arg char *origstr; - + + uiStyleFontSet(&style->widget); + origstr= MEM_callocN(sizeof(char)*(data->maxlen+1), "ui_textedit origstr"); BLI_strncpy(origstr, but->drawstr, data->maxlen+1); but->pos= strlen(origstr)-but->ofs; - while((but->aspect*UI_GetStringWidth(but->font, origstr+but->ofs, 0) + but->x1) > x) { + while((BLF_width(origstr+but->ofs) + but->x1) > x) { if (but->pos <= 0) break; but->pos--; origstr[but->pos+but->ofs] = 0; |