mirror of
https://github.com/ocornut/imgui.git
synced 2026-05-09 07:12:23 +00:00
MultiSelect+Tables: fixed an issue where box-select would skip items while drag-scrolling in a table with outer borders. (#7970, #7821).
See "widgets_multiselect_boxselect_2" test.
This commit is contained in:
@@ -63,6 +63,8 @@ Other changes:
|
|||||||
#6223, #6364, #6387, #6567, #6692, #6724, #6939, #6984, #7246, #7270, #7375, #7421, #7434,
|
#6223, #6364, #6387, #6567, #6692, #6724, #6939, #6984, #7246, #7270, #7375, #7421, #7434,
|
||||||
#7472, #7581, #7724, #7926, #7937 and probably more..)
|
#7472, #7581, #7724, #7926, #7937 and probably more..)
|
||||||
- Nav: pressing any keyboard key while holding Alt disable toggling nav layer on Alt release. (#4439)
|
- Nav: pressing any keyboard key while holding Alt disable toggling nav layer on Alt release. (#4439)
|
||||||
|
- MultiSelect+Tables: fixed an issue where box-select would skip items while drag-scrolling
|
||||||
|
in a table with outer borders. (#7970, #7821).
|
||||||
- InputText: internal refactoring to simplify and optimize the code. The ImWchar buffer has been
|
- InputText: internal refactoring to simplify and optimize the code. The ImWchar buffer has been
|
||||||
removed. Simplifications allowed to implement new optimizations for handling very large text buffers
|
removed. Simplifications allowed to implement new optimizations for handling very large text buffers
|
||||||
(e.g. in our testing, handling of a 1 MB text buffer is now 3 times faster in VS2022 Debug build).
|
(e.g. in our testing, handling of a 1 MB text buffer is now 3 times faster in VS2022 Debug build).
|
||||||
|
|||||||
@@ -7403,6 +7403,7 @@ static void DebugLogMultiSelectRequests(const char* function, const ImGuiMultiSe
|
|||||||
|
|
||||||
static ImRect CalcScopeRect(ImGuiMultiSelectTempData* ms, ImGuiWindow* window)
|
static ImRect CalcScopeRect(ImGuiMultiSelectTempData* ms, ImGuiWindow* window)
|
||||||
{
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
if (ms->Flags & ImGuiMultiSelectFlags_ScopeRect)
|
if (ms->Flags & ImGuiMultiSelectFlags_ScopeRect)
|
||||||
{
|
{
|
||||||
// Warning: this depends on CursorMaxPos so it means to be called by EndMultiSelect() only
|
// Warning: this depends on CursorMaxPos so it means to be called by EndMultiSelect() only
|
||||||
@@ -7410,8 +7411,12 @@ static ImRect CalcScopeRect(ImGuiMultiSelectTempData* ms, ImGuiWindow* window)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Add inner table decoration (#7821) // FIXME: Why not baking in InnerClipRect?
|
// When a table, pull HostClipRect, which allows us to predict ClipRect before first row/layout is performed. (#7970)
|
||||||
ImRect scope_rect = window->InnerClipRect;
|
ImRect scope_rect = window->InnerClipRect;
|
||||||
|
if (g.CurrentTable != NULL)
|
||||||
|
scope_rect = g.CurrentTable->HostClipRect;
|
||||||
|
|
||||||
|
// Add inner table decoration (#7821) // FIXME: Why not baking in InnerClipRect?
|
||||||
scope_rect.Min = ImMin(scope_rect.Min + ImVec2(window->DecoInnerSizeX1, window->DecoInnerSizeY1), scope_rect.Max);
|
scope_rect.Min = ImMin(scope_rect.Min + ImVec2(window->DecoInnerSizeX1, window->DecoInnerSizeY1), scope_rect.Max);
|
||||||
return scope_rect;
|
return scope_rect;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user