Make panels use the max of the scaler size or scrollbar y size when calculating their height

Make horizontal scrollbars use the scrollbar y size when calculating their position
This commit is contained in:
Anthony Pesch 2016-06-23 22:49:10 -07:00
parent 76ba0b2374
commit af451ebee2
1 changed files with 14 additions and 8 deletions

View File

@ -15633,10 +15633,16 @@ nk_panel_begin(struct nk_context *ctx, const char *title)
}
/* calculate window footer height */
if (!(win->flags & NK_WINDOW_NONBLOCK) &&
(!(win->flags & NK_WINDOW_NO_SCROLLBAR) || (win->flags & NK_WINDOW_SCALABLE)))
layout->footer_h = scaler_size.y + style->window.footer_padding.y;
else layout->footer_h = 0;
layout->footer_h = 0;
if (!(win->flags & NK_WINDOW_NONBLOCK)) {
if (!(win->flags & NK_WINDOW_NO_SCROLLBAR)) {
layout->footer_h = scrollbar_size.y + style->window.footer_padding.y;
}
if (win->flags & NK_WINDOW_SCALABLE) {
layout->footer_h = NK_MAX(layout->footer_h, scaler_size.y + style->window.footer_padding.y);
}
}
/* calculate the window size */
if (!(win->flags & NK_WINDOW_NO_SCROLLBAR))
@ -15968,19 +15974,19 @@ nk_panel_end(struct nk_context *ctx)
nk_flags state = 0;
bounds.x = layout->bounds.x + window_padding.x;
if (layout->flags & NK_WINDOW_SUB) {
bounds.h = scrollbar_size.x;
bounds.h = scrollbar_size.y;
bounds.y = (layout->flags & NK_WINDOW_BORDER) ?
layout->bounds.y + layout->border : layout->bounds.y;
bounds.y += layout->header_h + layout->menu.h + layout->height;
bounds.w = layout->width;
} else if (layout->flags & NK_WINDOW_DYNAMIC) {
bounds.h = NK_MIN(scrollbar_size.x, layout->footer_h);
bounds.h = NK_MIN(scrollbar_size.y, layout->footer_h);
bounds.w = layout->bounds.w;
bounds.y = footer.y;
} else {
bounds.h = NK_MIN(scrollbar_size.x, layout->footer_h);
bounds.h = NK_MIN(scrollbar_size.y, layout->footer_h);
bounds.y = layout->bounds.y + window->bounds.h;
bounds.y -= NK_MAX(layout->footer_h, scrollbar_size.x);
bounds.y -= NK_MAX(layout->footer_h, scrollbar_size.y);
bounds.w = layout->width - 2 * window_padding.x;
}
scroll_offset = layout->offset->x;