mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-24 05:19:02 +08:00
TabBar: Allow closing entire TabBar (possible docking only) when it contains user-appended buttons. (#5515)
In docking branch we mass-call TabBarCloseTab(). Amend b26f1530
. Standardize Changelog entries.
This commit is contained in:
parent
e99c4fc668
commit
e926a664d5
@ -58,6 +58,8 @@ Other Changes:
|
||||
Enter keep the input active and select all text.
|
||||
- Tables,Columns: fixed a layout issue where SameLine() prior to a row change would set the
|
||||
next row in such state where subsequent SameLine() would move back to previous row.
|
||||
- Tabs: Fixed a crash when closing multiple windows (possible with docking only) with an
|
||||
appended TabItemButton(). (#5515, #3291) [@rokups]
|
||||
- IO: Added ImGuiKey_MouseXXX aliases for mouse buttons/wheel so all operations done on ImGuiKey
|
||||
can apply to mouse data as well. (#4921)
|
||||
- Nav: Fixed moving/resizing window with gamepad or keyboard when running at very high framerate.
|
||||
@ -146,8 +148,8 @@ Other Changes:
|
||||
merging draw-call of the last column didn't always work (regression since 1.87). (#4843, #4844) [@rokups]
|
||||
- Inputs: Fixed IsMouseClicked() repeat mode rate being half of keyboard repeat rate.
|
||||
- ColorEdit: Fixed text baseline alignment after a SameLine() after a ColorEdit() with visible label.
|
||||
- TabBar: BeginTabItem() now reacts to SetNextItemWidth(). (#5262)
|
||||
- TabBar: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their
|
||||
- Tabs: BeginTabItem() now reacts to SetNextItemWidth(). (#5262)
|
||||
- Tabs: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their
|
||||
initial width more precisely (without the occasional +1 worth of width).
|
||||
- Menus: Adjusted BeginMenu() closing logic so hovering void or non-MenuItem() in parent window
|
||||
always lead to menu closure. Fixes using items that are not MenuItem() or BeginItem() at the root
|
||||
@ -609,7 +611,7 @@ Other Changes:
|
||||
Convenient for some small columns. Name will still appear in context menu. (#4206).
|
||||
- Tables: Fixed columns order on TableSetupScrollFreeze() if previous data got frozen columns out of their section.
|
||||
- Tables: Fixed invalid data in TableGetSortSpecs() when SpecsDirty flag is unset. (#4233)
|
||||
- TabBar: Fixed using more than 32 KB-worth of tab names. (#4176)
|
||||
- Tabs: Fixed using more than 32 KB-worth of tab names. (#4176)
|
||||
- InputInt/InputFloat: When used with Steps values and _ReadOnly flag, the step button look disabled. (#211)
|
||||
- InputText: Fixed named filtering flags disabling newline or tabs in multiline inputs (#4409, #4410) [@kfsone]
|
||||
- Drag and Drop: drop target highlight doesn't try to bypass host clipping rectangle. (#4281, #3272)
|
||||
@ -702,7 +704,7 @@ Other Changes:
|
||||
- Tables: Expose TableSetColumnEnabled() in public api. (#3935)
|
||||
- Tables: Better preserve widths when columns count changes. (#4046)
|
||||
- Tables: Sharing more memory buffers between tables, reducing general memory footprints. (#3740)
|
||||
- TabBar: Fixed mouse reordering with very fast movements (e.g. crossing multiple tabs in a single
|
||||
- Tabs: Fixed mouse reordering with very fast movements (e.g. crossing multiple tabs in a single
|
||||
frame and then immediately standing still (would only affect automation/bots). [@rokups]
|
||||
- Menus: made MenuItem() in a menu bar reflect the 'selected' argument with a highlight. (#4128) [@mattelegende]
|
||||
- Drags, Sliders, Inputs: Specifying a NULL format to Float functions default them to "%.3f" to be
|
||||
@ -985,11 +987,11 @@ Other Changes:
|
||||
- Added 2 enums: ImGuiSortDirection, ImGuiTableBgTarget
|
||||
- Added 1 style variable: ImGuiStyleVar_CellPadding
|
||||
- Added 5 style colors: ImGuiCol_TableHeaderBg, ImGuiCol_TableBorderStrong, ImGuiCol_TableBorderLight, ImGuiCol_TableRowBg, ImGuiCol_TableRowBgAlt.
|
||||
- Tab Bar: Made it possible to append to an existing tab bar by calling BeginTabBar()/EndTabBar() again.
|
||||
- Tab Bar: Fixed using more than 128 tabs in a tab bar (scrolling policy recommended).
|
||||
- Tab Bar: Do not display a tooltip if the name already fits over a given tab. (#3521)
|
||||
- Tab Bar: Fixed minor/unlikely bug skipping over a button when scrolling left with arrows.
|
||||
- Tab Bar: Requested ideal content size (for auto-fit) doesn't affect horizontal scrolling. (#3414)
|
||||
- Tabs: Made it possible to append to an existing tab bar by calling BeginTabBar()/EndTabBar() again.
|
||||
- Tabs: Fixed using more than 128 tabs in a tab bar (scrolling policy recommended).
|
||||
- Tabs: Do not display a tooltip if the name already fits over a given tab. (#3521)
|
||||
- Tabs: Fixed minor/unlikely bug skipping over a button when scrolling left with arrows.
|
||||
- Tabs: Requested ideal content size (for auto-fit) doesn't affect horizontal scrolling. (#3414)
|
||||
- Drag and Drop: Fix losing drop source ActiveID (and often source tooltip) when opening a TreeNode()
|
||||
or CollapsingHeader() while dragging. (#1738)
|
||||
- Drag and Drop: Fix drag and drop to tie same-size drop targets by chosen the later one. Fixes dragging
|
||||
@ -1110,16 +1112,16 @@ Other Changes:
|
||||
rather than the Mouse Down+Up sequence, even if the _OpenOnArrow flag isn't set. This is standard behavior
|
||||
and amends the change done in 1.76 which only affected cases were _OpenOnArrow flag was set.
|
||||
(This is also necessary to support full multi/range-select/drag and drop operations.)
|
||||
- Tab Bar: Added TabItemButton() to submit tab that behave like a button. (#3291) [@Xipiryon]
|
||||
- Tab Bar: Added ImGuiTabItemFlags_Leading and ImGuiTabItemFlags_Trailing flags to position tabs or button
|
||||
- Tabs: Added TabItemButton() to submit tab that behave like a button. (#3291) [@Xipiryon]
|
||||
- Tabs: Added ImGuiTabItemFlags_Leading and ImGuiTabItemFlags_Trailing flags to position tabs or button
|
||||
at either end of the tab bar. Those tabs won't be part of the scrolling region, and when reordering cannot
|
||||
be moving outside of their section. Most often used with TabItemButton(). (#3291) [@Xipiryon]
|
||||
- Tab Bar: Added ImGuiTabItemFlags_NoReorder flag to disable reordering a given tab.
|
||||
- Tab Bar: Keep tab item close button visible while dragging a tab (independent of hovering state).
|
||||
- Tab Bar: Fixed a small bug where closing a tab that is not selected would leave a tab hole for a frame.
|
||||
- Tab Bar: Fixed a small bug where scrolling buttons (with ImGuiTabBarFlags_FittingPolicyScroll) would
|
||||
- Tabs: Added ImGuiTabItemFlags_NoReorder flag to disable reordering a given tab.
|
||||
- Tabs: Keep tab item close button visible while dragging a tab (independent of hovering state).
|
||||
- Tabs: Fixed a small bug where closing a tab that is not selected would leave a tab hole for a frame.
|
||||
- Tabs: Fixed a small bug where scrolling buttons (with ImGuiTabBarFlags_FittingPolicyScroll) would
|
||||
generate an unnecessary extra draw call.
|
||||
- Tab Bar: Fixed a small bug where toggling a tab bar from Reorderable to not Reorderable would leave
|
||||
- Tabs: Fixed a small bug where toggling a tab bar from Reorderable to not Reorderable would leave
|
||||
tabs reordered in the tab list popup. [@Xipiryon]
|
||||
- Columns: Fix inverted ClipRect being passed to renderer when using certain primitives inside of
|
||||
a fully clipped column. (#3475) [@szreder]
|
||||
@ -1213,7 +1215,7 @@ Other Changes:
|
||||
limits when close-enough by (WindowPadding - ItemPadding), which was a tweak with too many
|
||||
side-effects. The behavior is still present in SetScrollHere functions as they are more explicitly
|
||||
aiming at making widgets visible. May later be moved to a flag.
|
||||
- Tab Bar: Allow calling SetTabItemClosed() after a tab has been submitted (will process next frame).
|
||||
- Tabs: Allow calling SetTabItemClosed() after a tab has been submitted (will process next frame).
|
||||
- InvisibleButton: Made public a small selection of ImGuiButtonFlags (previously in imgui_internal.h)
|
||||
and allowed to pass them to InvisibleButton(): ImGuiButtonFlags_MouseButtonLeft/Right/Middle.
|
||||
This is a small but rather important change because lots of multi-button behaviors could previously
|
||||
@ -1600,11 +1602,11 @@ Other Changes:
|
||||
- ColorPicker: Made rendering aware of global style alpha of the picker can be faded out. (#2711)
|
||||
Note that some elements won't accurately fade down with the same intensity, and the color wheel
|
||||
when enabled will have small overlap glitches with (style.Alpha < 1.0).
|
||||
- TabBar: Fixed single-tab not shrinking their width down.
|
||||
- TabBar: Fixed clicking on a tab larger than tab-bar width creating a bouncing feedback loop.
|
||||
- TabBar: Feed desired width (sum of unclipped tabs width) into layout system to allow for auto-resize. (#2768)
|
||||
- Tabs: Fixed single-tab not shrinking their width down.
|
||||
- Tabs: Fixed clicking on a tab larger than tab-bar width creating a bouncing feedback loop.
|
||||
- Tabs: Feed desired width (sum of unclipped tabs width) into layout system to allow for auto-resize. (#2768)
|
||||
(before 1.71 tab bars fed the sum of current width which created feedback loops in certain situations).
|
||||
- TabBar: Improved shrinking for large number of tabs to avoid leaving extraneous space on the right side.
|
||||
- Tabs: Improved shrinking for large number of tabs to avoid leaving extraneous space on the right side.
|
||||
Individuals tabs are given integer-rounded width and remainder is spread between tabs left-to-right.
|
||||
- Columns, Separator: Fixed a bug where non-visible separators within columns would alter the next row position
|
||||
differently than visible ones.
|
||||
@ -1704,7 +1706,7 @@ Other Changes:
|
||||
- Scrollbar: Avoid overlapping the opposite side when window (often a child window) is forcibly too small.
|
||||
- Combo: Hide arrow when there's not enough space even for the square button.
|
||||
- InputText: Testing for newly added ImGuiKey_KeyPadEnter key. (#2677, #2005) [@amc522]
|
||||
- TabBar: Fixed unfocused tab bar separator color (was using ImGuiCol_Tab, should use ImGuiCol_TabUnfocusedActive).
|
||||
- Tabs: Fixed unfocused tab bar separator color (was using ImGuiCol_Tab, should use ImGuiCol_TabUnfocusedActive).
|
||||
- Columns: Fixed a regression from 1.71 where the right-side of the contents rectangle within each column
|
||||
would wrongly use a WindowPadding.x instead of ItemSpacing.x like it always did. (#125, #2666)
|
||||
- Columns: Made the right-most edge reaches up to the clipping rectangle (removing half of WindowPadding.x
|
||||
@ -1799,7 +1801,7 @@ Other Changes:
|
||||
viewport triggering the issue. (#2609)
|
||||
- TreeNode, CollapsingHeader: Fixed highlight frame not covering horizontal area fully when using
|
||||
horizontal scrolling. (#2211, #2579)
|
||||
- TabBar: Fixed BeginTabBar() within a window with horizontal scrolling from creating a feedback
|
||||
- Tabs: Fixed BeginTabBar() within a window with horizontal scrolling from creating a feedback
|
||||
loop with the horizontal contents size.
|
||||
- Columns: Fixed Columns() within a window with horizontal scrolling from not covering the full
|
||||
horizontal area (previously only worked with an explicit contents size). (#125)
|
||||
@ -1968,14 +1970,14 @@ Other Changes:
|
||||
- ColorEdit: Fixed tooltip not honoring the ImGuiColorEditFlags_NoAlpha contract of never
|
||||
reading the 4th float in the array (value was read and discarded). (#2384) [@haldean]
|
||||
- MenuItem, Selectable: Fixed disabled widget interfering with navigation (fix c2db7f63 in 1.67).
|
||||
- TabBar: Fixed a crash when using many BeginTabBar() recursively (didn't affect docking). (#2371)
|
||||
- TabBar: Added extra mis-usage error recovery. Past the assert, common mis-usage don't lead to
|
||||
- Tabs: Fixed a crash when using many BeginTabBar() recursively (didn't affect docking). (#2371)
|
||||
- Tabs: 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)
|
||||
- TabBar: Fixed ImGuiTabItemFlags_SetSelected being ignored if the tab is not visible (with
|
||||
- Tabs: Fixed ImGuiTabItemFlags_SetSelected being ignored if the tab is not visible (with
|
||||
scrolling policy enabled) or if is currently appearing.
|
||||
- TabBar: Fixed Tab tooltip code making drag and drop tooltip disappear during the frame where
|
||||
- Tabs: Fixed Tab tooltip code making drag and drop tooltip disappear during the frame where
|
||||
the drag payload activate a tab.
|
||||
- TabBar: Reworked scrolling policy (when ImGuiTabBarFlags_FittingPolicyScroll is set) to
|
||||
- Tabs: Reworked scrolling policy (when ImGuiTabBarFlags_FittingPolicyScroll is set) to
|
||||
teleport the view when aiming at a tab far away the visible section, and otherwise accelerate
|
||||
the scrolling speed to cap the scrolling time to 0.3 seconds.
|
||||
- Text: Fixed large Text/TextUnformatted calls not feeding their size into layout when starting
|
||||
|
@ -7743,7 +7743,9 @@ void ImGui::TabBarRemoveTab(ImGuiTabBar* tab_bar, ImGuiID tab_id)
|
||||
// Called on manual closure attempt
|
||||
void ImGui::TabBarCloseTab(ImGuiTabBar* tab_bar, ImGuiTabItem* tab)
|
||||
{
|
||||
IM_ASSERT(!(tab->Flags & ImGuiTabItemFlags_Button));
|
||||
if (tab->Flags & ImGuiTabItemFlags_Button)
|
||||
return; // A button appended with TabItemButton().
|
||||
|
||||
if (!(tab->Flags & ImGuiTabItemFlags_UnsavedDocument))
|
||||
{
|
||||
// This will remove a frame of lag for selecting another tab on closure.
|
||||
|
Loading…
Reference in New Issue
Block a user