UI: Prevent scrollbars from getting too small to grab

Differential Revision: https://developer.blender.org/D5001
This commit is contained in:
EitanSomething 2019-06-03 18:13:52 +02:00 committed by Jacques Lucke
parent c39a8657be
commit cd90986bcb
2 changed files with 12 additions and 11 deletions

View File

@ -70,6 +70,8 @@ enum eView2D_CommonViewTypes {
/* scroller 'handles' hotspot radius for mouse */
#define V2D_SCROLLER_HANDLE_SIZE (0.6f * U.widget_unit)
#define V2D_MIN_SCROLLER_SIZE (50.0 * UI_DPI_FAC)
/* ------ Define for UI_view2d_sync ----- */
/* means copy it from another v2d */

View File

@ -1504,12 +1504,12 @@ View2DScrollers *UI_view2d_scrollers_calc(View2D *v2d, const rcti *mask_custom)
if (scrollers->hor_min > scrollers->hor_max) {
scrollers->hor_min = scrollers->hor_max;
}
/* prevent sliders from being too small, and disappearing */
if ((scrollers->hor_max - scrollers->hor_min) < V2D_SCROLLER_HANDLE_SIZE) {
scrollers->hor_max = scrollers->hor_min + V2D_SCROLLER_HANDLE_SIZE;
/* prevent sliders from being too small to grab */
if ((scrollers->hor_max - scrollers->hor_min) < V2D_MIN_SCROLLER_SIZE) {
scrollers->hor_max = scrollers->hor_min + V2D_MIN_SCROLLER_SIZE;
CLAMP(scrollers->hor_max, hor.xmin + V2D_SCROLLER_HANDLE_SIZE, hor.xmax);
CLAMP(scrollers->hor_min, hor.xmin, hor.xmax - V2D_SCROLLER_HANDLE_SIZE);
CLAMP(scrollers->hor_max, hor.xmin + V2D_MIN_SCROLLER_SIZE, hor.xmax);
CLAMP(scrollers->hor_min, hor.xmin, hor.xmax - V2D_MIN_SCROLLER_SIZE);
}
}
@ -1542,13 +1542,12 @@ View2DScrollers *UI_view2d_scrollers_calc(View2D *v2d, const rcti *mask_custom)
if (scrollers->vert_min > scrollers->vert_max) {
scrollers->vert_min = scrollers->vert_max;
}
/* prevent sliders from being too small, and disappearing */
if ((scrollers->vert_max - scrollers->vert_min) < V2D_SCROLLER_HANDLE_SIZE) {
/* prevent sliders from being too small to grab */
if ((scrollers->vert_max - scrollers->vert_min) < V2D_MIN_SCROLLER_SIZE) {
scrollers->vert_max = scrollers->vert_min + V2D_MIN_SCROLLER_SIZE;
scrollers->vert_max = scrollers->vert_min + V2D_SCROLLER_HANDLE_SIZE;
CLAMP(scrollers->vert_max, vert.ymin + V2D_SCROLLER_HANDLE_SIZE, vert.ymax);
CLAMP(scrollers->vert_min, vert.ymin, vert.ymax - V2D_SCROLLER_HANDLE_SIZE);
CLAMP(scrollers->vert_max, vert.ymin + V2D_MIN_SCROLLER_SIZE, vert.ymax);
CLAMP(scrollers->vert_min, vert.ymin, vert.ymax - V2D_MIN_SCROLLER_SIZE);
}
}