mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 01:34:32 +00:00 
			
		
		
		
	Overlap, IsItemHovered: clarification on using IsItemHovered() on a non-reactive item after a reactive overlappable one. (#6610)
This commit is contained in:
		@@ -45,7 +45,7 @@ Breaking changes:
 | 
			
		||||
- IO: Obsoleted io.ClearInputCharacters() (added in 1.47) as it now ambiguous
 | 
			
		||||
  and often incorrect/misleading considering the existence of a higher-level
 | 
			
		||||
  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
 | 
			
		||||
  cannot compare to NULL nor reassign manually anymore.
 | 
			
		||||
  Instead use AddDrawList(). (#6406, #4879, #1878)
 | 
			
		||||
@@ -98,6 +98,11 @@ Breaking changes:
 | 
			
		||||
    legacy 'SetItemAllowOverlap()' call (public API) + ImGuiButtonFlags_AllowOverlap (internal).
 | 
			
		||||
  - 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.
 | 
			
		||||
  - 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 'ImGuiSelectableFlags_AllowItemOverlap' to 'ImGuiSelectableFlags_AllowOverlap'
 | 
			
		||||
  - 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.
 | 
			
		||||
  - 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)
 | 
			
		||||
  - 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, IsItemHovered: Assert when passed any unsupported flags.
 | 
			
		||||
- 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: 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: 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/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:
 | 
			
		||||
@@ -4077,7 +4078,7 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags)
 | 
			
		||||
// 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)
 | 
			
		||||
// 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'.
 | 
			
		||||
// - 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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user