diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-18 22:54:42 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-18 22:54:42 +0400 |
commit | a66236c8f93a56c77351a21fc2e1a4b57bc67486 (patch) | |
tree | 6f183b4ac94bbd7bda0432a46922d64ea876286d /source | |
parent | 3f769776fe65aa121b26f6af38682b5ecf6a09aa (diff) |
Fix T38661: make number button increment/decrement areas smaller.
Previously 1/3 of the button was used to decrement, 1/3 to edit and 1/3 to
increment. However with the number text now right aligned this meant that
the increment area would overlap the number text, which is confusing. So it
was made to smaller to only cover the arrows.
It's not as easy to click but I don't know of a better solution with right
aligned number text.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 9df6b7b24ab..7aa2e98ffb2 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -3517,13 +3517,16 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton /* we can click on the side arrows to increment/decrement, * or click inside to edit the value directly */ float tempf, softmin, softmax; + float handlewidth; int temp; softmin = but->softmin; softmax = but->softmax; + handlewidth = min_ff(BLI_rctf_size_x(&but->rect)/3, BLI_rctf_size_y(&but->rect)); + if (!ui_is_but_float(but)) { - if (mx < (but->rect.xmin + BLI_rctf_size_x(&but->rect) / 3 - 3)) { + if (mx < (but->rect.xmin + handlewidth)) { button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); temp = (int)data->value - 1; @@ -3534,7 +3537,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton button_activate_state(C, but, BUTTON_STATE_EXIT); } - else if (mx > (but->rect.xmin + (2 * BLI_rctf_size_x(&but->rect) / 3) + 3)) { + else if (mx > (but->rect.xmax - handlewidth)) { button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); temp = (int)data->value + 1; @@ -3550,7 +3553,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton } } else { - if (mx < (but->rect.xmin + BLI_rctf_size_x(&but->rect) / 3 - 3)) { + if (mx < (but->rect.xmin + handlewidth)) { button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); tempf = (float)data->value - 0.01f * but->a1; @@ -3559,7 +3562,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton button_activate_state(C, but, BUTTON_STATE_EXIT); } - else if (mx > but->rect.xmin + (2 * (BLI_rctf_size_x(&but->rect) / 3) + 3)) { + else if (mx > but->rect.xmax - handlewidth) { button_activate_state(C, but, BUTTON_STATE_NUM_EDITING); tempf = (float)data->value + 0.01f * but->a1; |