@@ -20315,7 +20315,7 @@ nk_panel_end(struct nk_context *ctx)
2031520315 root_window = root_window->parent;
2031620316
2031720317 /* only allow scrolling if parent window is active */
20318- scroll_has_scrolling = 0 ;
20318+ scroll_has_scrolling = nk_false ;
2031920319 if ((root_window == ctx->active) && layout->has_scrolling) {
2032020320 /* and panel is being hovered and inside clip rect*/
2032120321 if (nk_input_is_mouse_hovering_rect(in, layout->bounds) &&
@@ -20332,13 +20332,13 @@ nk_panel_end(struct nk_context *ctx)
2033220332 scroll_has_scrolling = nk_true;
2033320333 }
2033420334 }
20335- } else if (!nk_panel_is_sub(layout->type)) {
20335+ } else {
2033620336 /* window mouse wheel scrolling */
2033720337 scroll_has_scrolling = (window == ctx->active) && layout->has_scrolling;
2033820338 if (in && (in->mouse.scroll_delta.y > 0 || in->mouse.scroll_delta.x > 0) && scroll_has_scrolling)
2033920339 window->scrolled = nk_true;
2034020340 else window->scrolled = nk_false;
20341- } else scroll_has_scrolling = nk_false;
20341+ }
2034220342
2034320343 {
2034420344 /* vertical scrollbar */
@@ -26105,16 +26105,18 @@ nk_knob_behavior(nk_flags *state, struct nk_input *in,
2610526105 /* knob widget state */
2610626106 if (nk_input_is_mouse_hovering_rect(in, bounds)){
2610726107 *state = NK_WIDGET_STATE_HOVERED;
26108- if (in) {
26109- /* handle scroll and arrow inputs */
26110- if (in->mouse.scroll_delta.y > 0 ||
26111- (in->keyboard.keys[NK_KEY_UP].down && in->keyboard.keys[NK_KEY_UP].clicked))
26112- knob_value += knob_step;
26113-
26114- if (in->mouse.scroll_delta.y < 0 ||
26115- (in->keyboard.keys[NK_KEY_DOWN].down && in->keyboard.keys[NK_KEY_DOWN].clicked))
26116- knob_value -= knob_step;
26108+ /* handle scroll and arrow inputs */
26109+ if (in->mouse.scroll_delta.y > 0 ||
26110+ (in->keyboard.keys[NK_KEY_UP].down && in->keyboard.keys[NK_KEY_UP].clicked)) {
26111+ knob_value += knob_step;
26112+ }
26113+
26114+ if (in->mouse.scroll_delta.y < 0 ||
26115+ (in->keyboard.keys[NK_KEY_DOWN].down && in->keyboard.keys[NK_KEY_DOWN].clicked)) {
26116+ knob_value -= knob_step;
2611726117 }
26118+ /* easiest way to disable scrolling of parent panels..knob eats scrolling */
26119+ in->mouse.scroll_delta.y = 0;
2611826120 knob_value = NK_CLAMP(knob_min, knob_value, knob_max);
2611926121 }
2612026122 if (*state & NK_WIDGET_STATE_HOVER &&
@@ -30698,6 +30700,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args)
3069830700/// - [y]: Minor version with non-breaking API and library changes
3069930701/// - [z]: Patch version with no direct changes to the API
3070030702///
30703+ /// - 2025/03/05 (4.12.5) - Fix scrolling knob also scrolling parent window, remove dead code
3070130704/// - 2024/12/11 (4.12.4) - Fix array subscript [0, 0] is outside array bounds of ‘char[1]’
3070230705/// - 2024/12/11 (4.12.3) - Fix border color for property widgets
3070330706/// - 2024/11/20 (4.12.2) - Fix int/float type conversion warnings in `nk_roundf`
0 commit comments