From 59b661a2907d9d167981571e2b34c1b18ba7d2cd Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 18 Apr 2010 17:05:55 +0000 Subject: Bugfix: text buttons in zoomed in or out views, didn't get the cursor on the right location for mouseclicks. --- source/blender/editors/interface/interface_handlers.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 950975de2ab..258a9e54510 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1150,6 +1150,7 @@ static int ui_textedit_delete_selection(uiBut *but, uiHandleButtonData *data) return change; } +/* note, but->block->aspect is used here, when drawing button style is getting scaled too */ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, short x) { uiStyle *style= U.uistyles.first; // XXX pass on as arg @@ -1190,10 +1191,12 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho } /* mouse inside the widget */ else if (x >= startx) { + float aspect= sqrt(but->block->aspect); + but->pos= strlen(origstr)-but->ofs; /* XXX does not take zoom level into account */ - while (startx + BLF_width(origstr+but->ofs) > x) { + while (aspect*startx + aspect*BLF_width(origstr+but->ofs) > x) { if (but->pos <= 0) break; but->pos--; origstr[but->pos+but->ofs] = 0; -- cgit v1.2.3