diff options
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 3 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_templates.c | 11 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_screen_types.h | 1 |
3 files changed, 13 insertions, 2 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index c0c8367eb8c..cad9f6707d5 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -3424,10 +3424,12 @@ static int ui_do_but_LISTBOX(bContext *C, uiBlock *block, uiBut *but, uiHandleBu data->escapecancel = true; *size = (int)data->origvalue; button_activate_state(C, but, BUTTON_STATE_EXIT); + ui_list->flag &= ~UILST_RESIZING; ED_region_tag_redraw(data->region); } else if (event->type == LEFTMOUSE && event->val != KM_PRESS) { button_activate_state(C, but, BUTTON_STATE_EXIT); + ui_list->flag &= ~UILST_RESIZING; ED_region_tag_redraw(data->region); } else if (event->type == MOUSEMOVE) { @@ -6552,6 +6554,7 @@ static int ui_handle_list_event(bContext *C, const wmEvent *event, ARegion *ar) /* Again, have to override values set by ui_numedit_begin, because our listbox button also has a rnapoin... */ *size = data->origvalue = (double)dyn_data->visual_height; + ui_list->flag |= UILST_RESIZING; retval = WM_UI_HANDLER_BREAK; } diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 5ffb47c4df0..2098d881d4e 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -2517,10 +2517,17 @@ static void prepare_list(uiList *ui_list, int len, int activei, int rows, int ma maxrows = 5; if (columns == 0) columns = 9; - if (ui_list->list_grip >= rows) + + if (ui_list->list_grip >= rows) { maxrows = rows = ui_list->list_grip; - else + } + else { ui_list->list_grip = 0; /* Reset to auto-size mode. */ + /* Prevent auto-size mode to take effect while grab-resizing! */ + if (ui_list->flag & UILST_RESIZING) { + maxrows = rows; + } + } if (columns > 1) { dyn_data->height = (int)ceil((double)len / (double)columns); diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h index c15deaeb137..8e18a84060a 100644 --- a/source/blender/makesdna/DNA_screen_types.h +++ b/source/blender/makesdna/DNA_screen_types.h @@ -256,6 +256,7 @@ enum { /* uiList flag */ enum { UILST_SCROLL_TO_ACTIVE_ITEM = 1 << 0, /* Scroll list to make active item visible. */ + UILST_RESIZING = 1 << 1, /* We are currently resizing, deactivate autosize! */ }; /* regiontype, first two are the default set */ |