Scrolling: internal scrolling value is rounded instead of truncated. (#6677)

This commit is contained in:
ocornut 2023-12-07 15:46:49 +01:00
parent c58d2c89c3
commit 5366bd09bf
2 changed files with 3 additions and 1 deletions

View File

@ -55,6 +55,8 @@ Other changes:
- Windows: BeginChild(): Fixed auto-resizing erroneously limiting size to host viewport - Windows: BeginChild(): Fixed auto-resizing erroneously limiting size to host viewport
minus padding. There are no limit to a child width/height. (#7063) [@Devyre] minus padding. There are no limit to a child width/height. (#7063) [@Devyre]
- Scrolling: internal scrolling value is rounded instead of truncated, as a way to reduce
speed asymetry when (incorrectly) attempting to scroll by non-integer amount. (#6677)
- Nav, IO: SetNextFrameWantCaptureKeyboard(false) calls are not overrided back to true when - Nav, IO: SetNextFrameWantCaptureKeyboard(false) calls are not overrided back to true when
navigation is enabled. SetNextFrameWantCaptureKeyboard() is always higher priority. (#6997) navigation is enabled. SetNextFrameWantCaptureKeyboard() is always higher priority. (#6997)
- Drag and Drop: Fixed drop target highlight on items temporarily pushing a widened clip rect - Drag and Drop: Fixed drop target highlight on items temporarily pushing a widened clip rect

View File

@ -10122,7 +10122,7 @@ static ImVec2 CalcNextScrollFromScrollTargetAndClamp(ImGuiWindow* window)
} }
scroll[axis] = scroll_target - center_ratio * (window->SizeFull[axis] - decoration_size[axis]); scroll[axis] = scroll_target - center_ratio * (window->SizeFull[axis] - decoration_size[axis]);
} }
scroll[axis] = IM_TRUNC(ImMax(scroll[axis], 0.0f)); scroll[axis] = IM_ROUND(ImMax(scroll[axis], 0.0f));
if (!window->Collapsed && !window->SkipItems) if (!window->Collapsed && !window->SkipItems)
scroll[axis] = ImMin(scroll[axis], window->ScrollMax[axis]); scroll[axis] = ImMin(scroll[axis], window->ScrollMax[axis]);
} }