mirror of https://github.com/ocornut/imgui
Nav: Update hovered logic, so IsItemHovered and ButtonBehavior are more consistent with each other. The known case this fixes is nav focusing on a color button, tooltip appears, mouse move: previously tooltip would stay up. (#787)
This commit is contained in:
parent
eb7ec781dc
commit
cea78cc576
|
@ -2367,7 +2367,7 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags)
|
||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
ImGuiWindow* window = g.CurrentWindow;
|
ImGuiWindow* window = g.CurrentWindow;
|
||||||
if (g.NavDisableMouseHover)
|
if (g.NavDisableMouseHover && !g.NavDisableHighlight)
|
||||||
return IsItemFocused();
|
return IsItemFocused();
|
||||||
|
|
||||||
// Test for bounding box overlap, as updated as ItemAdd()
|
// Test for bounding box overlap, as updated as ItemAdd()
|
||||||
|
@ -7331,7 +7331,7 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
|
||||||
|
|
||||||
// Gamepad/Keyboard navigation
|
// Gamepad/Keyboard navigation
|
||||||
// We report navigated item as hovered but we don't set g.HoveredId to not interfere with mouse.
|
// We report navigated item as hovered but we don't set g.HoveredId to not interfere with mouse.
|
||||||
if (g.NavId == id && !g.NavDisableHighlight && (g.ActiveId == 0 || g.ActiveId == id || g.ActiveId == window->MoveId))
|
if (g.NavId == id && !g.NavDisableHighlight && g.NavDisableMouseHover && (g.ActiveId == 0 || g.ActiveId == id || g.ActiveId == window->MoveId))
|
||||||
hovered = true;
|
hovered = true;
|
||||||
|
|
||||||
if (g.NavActivateDownId == id)
|
if (g.NavActivateDownId == id)
|
||||||
|
|
Loading…
Reference in New Issue