diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-01-26 16:48:36 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-01-26 16:48:36 +0400 |
commit | 4ae93a48d83a8340493aef0049c43f6180033807 (patch) | |
tree | 37bd481e3f255d37813a9804d13cdb95d94beb84 /source/blender/editors | |
parent | 83a6b331a75580f9eab24f4fe0b3fd6a1db9fab9 (diff) |
Fix #29958: Search Menu keeps hiding first character(s) after long input
- ui_check_but() in ui_textedit_move() is necessary because this function clips
but->drawstring to fit text entry widget and it confuses cursor movement stuff.
ui_check_but copies editstring to drawstring, so displaystring would be clipped
again in correct way.
- If the whole drawstring fits widget, no need to set button's offset.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 2 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_widgets.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 849d3ecc758..cfb375c2558 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1527,6 +1527,8 @@ static void ui_textedit_move(uiBut *but, uiHandleButtonData *data, int direction const int pos_prev= but->pos; const int has_sel= (but->selend - but->selsta) > 0; + ui_check_but(but); + /* special case, quit selection and set cursor */ if (has_sel && !select) { if (jump == BUTTON_EDIT_JUMP_ALL) { diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 19acfaccaa3..cd0844a38a3 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -952,6 +952,9 @@ static void ui_text_leftclip(uiFontStyle *fstyle, uiBut *but, rcti *rect) if(but->editstr && but->pos >= 0) { if(but->ofs > but->pos) but->ofs= but->pos; + + if(BLF_width(fstyle->uifont_id, but->drawstr) <= okwidth) + but->ofs = 0; } else but->ofs= 0; |