mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
TabBar: Fixed ImGuiTabItemFlags_SetSelected being ignored if the tab is not visible (with scrolling policy enabled) or if is currently appearing.
This commit is contained in:
parent
1c23981782
commit
e9651aaa77
@ -68,6 +68,8 @@ Other Changes:
|
|||||||
- TabBar: Fixed a crash when using BeginTabBar() recursively (didn't affect docking). (#2371)
|
- TabBar: Fixed a crash when using BeginTabBar() recursively (didn't affect docking). (#2371)
|
||||||
- TabBar: Added extra mis-usage error recovery. Past the assert, common mis-usage don't lead to
|
- TabBar: Added extra mis-usage error recovery. Past the assert, common mis-usage don't lead to
|
||||||
hard crashes any more, facilitating integration with scripting languages. (#1651)
|
hard crashes any more, facilitating integration with scripting languages. (#1651)
|
||||||
|
- TabBar: Fixed ImGuiTabItemFlags_SetSelected being ignored if the tab is not visible (with
|
||||||
|
scrolling policy enabled) or if is currently appearing.
|
||||||
- Text: Fixed large Text/TextUnformatted call not declaring its size when starting below the
|
- Text: Fixed large Text/TextUnformatted call not declaring its size when starting below the
|
||||||
lower point of the current clipping rectangle. Somehow this bug has been there since v1.0!
|
lower point of the current clipping rectangle. Somehow this bug has been there since v1.0!
|
||||||
It was hardly noticeable but would affect the scrolling range, which in turn would affect
|
It was hardly noticeable but would affect the scrolling range, which in turn would affect
|
||||||
|
@ -6592,6 +6592,8 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open,
|
|||||||
if (tab_appearing && (tab_bar->Flags & ImGuiTabBarFlags_AutoSelectNewTabs) && tab_bar->NextSelectedTabId == 0)
|
if (tab_appearing && (tab_bar->Flags & ImGuiTabBarFlags_AutoSelectNewTabs) && tab_bar->NextSelectedTabId == 0)
|
||||||
if (!tab_bar_appearing || tab_bar->SelectedTabId == 0)
|
if (!tab_bar_appearing || tab_bar->SelectedTabId == 0)
|
||||||
tab_bar->NextSelectedTabId = id; // New tabs gets activated
|
tab_bar->NextSelectedTabId = id; // New tabs gets activated
|
||||||
|
if ((flags & ImGuiTabItemFlags_SetSelected) && (tab_bar->SelectedTabId != id)) // SetSelected can only be passed on explicit tab bar
|
||||||
|
tab_bar->NextSelectedTabId = id;
|
||||||
|
|
||||||
// Lock visibility
|
// Lock visibility
|
||||||
bool tab_contents_visible = (tab_bar->VisibleTabId == id);
|
bool tab_contents_visible = (tab_bar->VisibleTabId == id);
|
||||||
@ -6643,9 +6645,9 @@ bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open,
|
|||||||
button_flags |= ImGuiButtonFlags_PressedOnDragDropHold;
|
button_flags |= ImGuiButtonFlags_PressedOnDragDropHold;
|
||||||
bool hovered, held;
|
bool hovered, held;
|
||||||
bool pressed = ButtonBehavior(bb, id, &hovered, &held, button_flags);
|
bool pressed = ButtonBehavior(bb, id, &hovered, &held, button_flags);
|
||||||
hovered |= (g.HoveredId == id);
|
if (pressed)
|
||||||
if (pressed || ((flags & ImGuiTabItemFlags_SetSelected) && !tab_contents_visible)) // SetSelected can only be passed on explicit tab bar
|
|
||||||
tab_bar->NextSelectedTabId = id;
|
tab_bar->NextSelectedTabId = id;
|
||||||
|
hovered |= (g.HoveredId == id);
|
||||||
|
|
||||||
// Allow the close button to overlap unless we are dragging (in which case we don't want any overlapping tabs to be hovered)
|
// Allow the close button to overlap unless we are dragging (in which case we don't want any overlapping tabs to be hovered)
|
||||||
if (!held)
|
if (!held)
|
||||||
|
Loading…
Reference in New Issue
Block a user