From af451ebee299948065fdd3e468212b3a830af9d7 Mon Sep 17 00:00:00 2001 From: Anthony Pesch Date: Thu, 23 Jun 2016 22:49:10 -0700 Subject: [PATCH] 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 --- nuklear.h | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/nuklear.h b/nuklear.h index b1a2d67..7a1b188 100644 --- a/nuklear.h +++ b/nuklear.h @@ -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;