mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Overlap, IsItemHovered: clarification on using IsItemHovered() on a non-reactive item after a reactive overlappable one. (#6610)
This commit is contained in:
parent
52125a54a5
commit
d342ec10cc
@ -45,7 +45,7 @@ Breaking changes:
|
|||||||
- IO: Obsoleted io.ClearInputCharacters() (added in 1.47) as it now ambiguous
|
- IO: Obsoleted io.ClearInputCharacters() (added in 1.47) as it now ambiguous
|
||||||
and often incorrect/misleading considering the existence of a higher-level
|
and often incorrect/misleading considering the existence of a higher-level
|
||||||
input queue. (#4921)
|
input queue. (#4921)
|
||||||
- ImDrawData: CmdLists[] arra is now owned, changed from 'ImDrawList**' to
|
- ImDrawData: CmdLists[] array is now owned, changed from 'ImDrawList**' to
|
||||||
'ImVector<ImDrawList*>'. Majority of users shouldn't be affected, but you
|
'ImVector<ImDrawList*>'. Majority of users shouldn't be affected, but you
|
||||||
cannot compare to NULL nor reassign manually anymore.
|
cannot compare to NULL nor reassign manually anymore.
|
||||||
Instead use AddDrawList(). (#6406, #4879, #1878)
|
Instead use AddDrawList(). (#6406, #4879, #1878)
|
||||||
@ -98,6 +98,11 @@ Breaking changes:
|
|||||||
legacy 'SetItemAllowOverlap()' call (public API) + ImGuiButtonFlags_AllowOverlap (internal).
|
legacy 'SetItemAllowOverlap()' call (public API) + ImGuiButtonFlags_AllowOverlap (internal).
|
||||||
- Obsoleted 'SetItemAllowOverlap()': it didn't and couldn't work reliably since 1.89 (2022-11-15),
|
- Obsoleted 'SetItemAllowOverlap()': it didn't and couldn't work reliably since 1.89 (2022-11-15),
|
||||||
and relied on ambiguously defined design. Use 'SetNextItemAllowOverlap()' before item instead.
|
and relied on ambiguously defined design. Use 'SetNextItemAllowOverlap()' before item instead.
|
||||||
|
- Selectable, TreeNode: When using ImGuiSelectableFlags_AllowOverlap/ImGuiTreeNodeFlags_AllowOverlap
|
||||||
|
and holding item held, overlapping widgets won't appear as hovered. (#6512, #3909)
|
||||||
|
While this fixes a common small visual issue, it also means that calling IsItemHovered()
|
||||||
|
after a non-reactive elements - e.g. Text() - overlapping an active one may fail if you don't
|
||||||
|
use IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem). (#6610)
|
||||||
- Renamed 'ImGuiTreeNodeFlags_AllowItemOverlap' to 'ImGuiTreeNodeFlags_AllowOverlap'.
|
- Renamed 'ImGuiTreeNodeFlags_AllowItemOverlap' to 'ImGuiTreeNodeFlags_AllowOverlap'.
|
||||||
- Renamed 'ImGuiSelectableFlags_AllowItemOverlap' to 'ImGuiSelectableFlags_AllowOverlap'
|
- Renamed 'ImGuiSelectableFlags_AllowItemOverlap' to 'ImGuiSelectableFlags_AllowOverlap'
|
||||||
- Kept redirecting enums (will obsolete).
|
- Kept redirecting enums (will obsolete).
|
||||||
@ -133,8 +138,6 @@ Other changes:
|
|||||||
- Fixed first frame of an overlap highlighting underlying item if previous frame didn't hover anything.
|
- Fixed first frame of an overlap highlighting underlying item if previous frame didn't hover anything.
|
||||||
- IsItemHovered: Changed to return false when querying an item using AllowOverlap mode which
|
- IsItemHovered: Changed to return false when querying an item using AllowOverlap mode which
|
||||||
is being overlapped. Added ImGuiHoveredFlags_AllowWhenOverlappedByItem to opt-out. (#6512, #3909, #517)
|
is being overlapped. Added ImGuiHoveredFlags_AllowWhenOverlappedByItem to opt-out. (#6512, #3909, #517)
|
||||||
- Selectable, TreeNode: When using ImGuiSelectableFlags_AllowOverlap/ImGuiTreeNodeFlags_AllowOverlap
|
|
||||||
and holding item held, overlapping widgets won't appear as hovered. (#6512, #3909)
|
|
||||||
- IsWindowHovered: Added support for ImGuiHoveredFlags_Stationary.
|
- IsWindowHovered: Added support for ImGuiHoveredFlags_Stationary.
|
||||||
- IsWindowHovered, IsItemHovered: Assert when passed any unsupported flags.
|
- IsWindowHovered, IsItemHovered: Assert when passed any unsupported flags.
|
||||||
- Tables: Fixed a regression in 1.89.6 leading to the first column of tables with either
|
- Tables: Fixed a regression in 1.89.6 leading to the first column of tables with either
|
||||||
|
@ -429,6 +429,7 @@ CODE
|
|||||||
- 2023/06/28 (1.89.7) - overlapping items: obsoleted 'SetItemAllowOverlap()' (called after item) in favor of calling 'SetNextItemAllowOverlap()' (called before item). 'SetItemAllowOverlap()' didn't and couldn't work reliably since 1.89 (2022-11-15).
|
- 2023/06/28 (1.89.7) - overlapping items: obsoleted 'SetItemAllowOverlap()' (called after item) in favor of calling 'SetNextItemAllowOverlap()' (called before item). 'SetItemAllowOverlap()' didn't and couldn't work reliably since 1.89 (2022-11-15).
|
||||||
- 2023/06/28 (1.89.7) - overlapping items: renamed 'ImGuiTreeNodeFlags_AllowItemOverlap' to 'ImGuiTreeNodeFlags_AllowOverlap', 'ImGuiSelectableFlags_AllowItemOverlap' to 'ImGuiSelectableFlags_AllowOverlap'. Kept redirecting enums (will obsolete).
|
- 2023/06/28 (1.89.7) - overlapping items: renamed 'ImGuiTreeNodeFlags_AllowItemOverlap' to 'ImGuiTreeNodeFlags_AllowOverlap', 'ImGuiSelectableFlags_AllowItemOverlap' to 'ImGuiSelectableFlags_AllowOverlap'. Kept redirecting enums (will obsolete).
|
||||||
- 2023/06/28 (1.89.7) - overlapping items: IsItemHovered() now by default return false when querying an item using AllowOverlap mode which is being overlapped. Use ImGuiHoveredFlags_AllowWhenOverlappedByItem to revert to old behavior.
|
- 2023/06/28 (1.89.7) - overlapping items: IsItemHovered() now by default return false when querying an item using AllowOverlap mode which is being overlapped. Use ImGuiHoveredFlags_AllowWhenOverlappedByItem to revert to old behavior.
|
||||||
|
- 2023/06/28 (1.89.7) - overlapping items: Selectable and TreeNode don't allow overlap when active so overlapping widgets won't appear as hovered. While this fixes a common small visual issue, it also means that calling IsItemHovered() after a non-reactive elements - e.g. Text() - overlapping an active one may fail if you don't use IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem). (#6610)
|
||||||
- 2023/06/20 (1.89.7) - moved io.HoverDelayShort/io.HoverDelayNormal to style.HoverDelayShort/style.HoverDelayNormal. As the fields were added in 1.89 and expected to be left unchanged by most users, or only tweaked once during app initialization, we are exceptionally accepting the breakage.
|
- 2023/06/20 (1.89.7) - moved io.HoverDelayShort/io.HoverDelayNormal to style.HoverDelayShort/style.HoverDelayNormal. As the fields were added in 1.89 and expected to be left unchanged by most users, or only tweaked once during app initialization, we are exceptionally accepting the breakage.
|
||||||
- 2023/05/30 (1.89.6) - backends: renamed "imgui_impl_sdlrenderer.cpp" to "imgui_impl_sdlrenderer2.cpp" and "imgui_impl_sdlrenderer.h" to "imgui_impl_sdlrenderer2.h". This is in prevision for the future release of SDL3.
|
- 2023/05/30 (1.89.6) - backends: renamed "imgui_impl_sdlrenderer.cpp" to "imgui_impl_sdlrenderer2.cpp" and "imgui_impl_sdlrenderer.h" to "imgui_impl_sdlrenderer2.h". This is in prevision for the future release of SDL3.
|
||||||
- 2023/05/22 (1.89.6) - listbox: commented out obsolete/redirecting functions that were marked obsolete more than two years ago:
|
- 2023/05/22 (1.89.6) - listbox: commented out obsolete/redirecting functions that were marked obsolete more than two years ago:
|
||||||
@ -4077,7 +4078,7 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags)
|
|||||||
// Internal facing ItemHoverable() used when submitting widgets. Differs slightly from IsItemHovered().
|
// Internal facing ItemHoverable() used when submitting widgets. Differs slightly from IsItemHovered().
|
||||||
// (this does not rely on LastItemData it can be called from a ButtonBehavior() call not following an ItemAdd() call)
|
// (this does not rely on LastItemData it can be called from a ButtonBehavior() call not following an ItemAdd() call)
|
||||||
// FIXME-LEGACY: the 'ImGuiItemFlags item_flags' parameter was added on 2023-06-28.
|
// FIXME-LEGACY: the 'ImGuiItemFlags item_flags' parameter was added on 2023-06-28.
|
||||||
// If you used this ii your legacy/custom widgets code:
|
// If you used this in your legacy/custom widgets code:
|
||||||
// - Commonly: if your ItemHoverable() call comes after an ItemAdd() call: pass 'item_flags = g.LastItemData.InFlags'.
|
// - Commonly: if your ItemHoverable() call comes after an ItemAdd() call: pass 'item_flags = g.LastItemData.InFlags'.
|
||||||
// - Rare: otherwise you may pass 'item_flags = 0' (ImGuiItemFlags_None) unless you want to benefit from special behavior handled by ItemHoverable.
|
// - Rare: otherwise you may pass 'item_flags = 0' (ImGuiItemFlags_None) unless you want to benefit from special behavior handled by ItemHoverable.
|
||||||
bool ImGui::ItemHoverable(const ImRect& bb, ImGuiID id, ImGuiItemFlags item_flags)
|
bool ImGui::ItemHoverable(const ImRect& bb, ImGuiID id, ImGuiItemFlags item_flags)
|
||||||
|
Loading…
Reference in New Issue
Block a user