mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
ButtonBehavior: pull ImGuiButtonFlags_Repeat from ImGuiItemFlags_ButtonRepeat, matching ItemHoverable() logic. So more widgets can take advantage of Repeat logic.
This commit is contained in:
parent
51f564eea6
commit
07e24b4058
@ -492,6 +492,11 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
|
|||||||
if ((flags & ImGuiButtonFlags_PressedOnMask_) == 0)
|
if ((flags & ImGuiButtonFlags_PressedOnMask_) == 0)
|
||||||
flags |= ImGuiButtonFlags_PressedOnDefault_;
|
flags |= ImGuiButtonFlags_PressedOnDefault_;
|
||||||
|
|
||||||
|
// Default behavior inherited from item flags
|
||||||
|
const ImGuiItemFlags item_flags = (g.LastItemData.ID == id ? g.LastItemData.InFlags : g.CurrentItemFlags);
|
||||||
|
if (item_flags & ImGuiItemFlags_ButtonRepeat)
|
||||||
|
flags |= ImGuiButtonFlags_Repeat;
|
||||||
|
|
||||||
ImGuiWindow* backup_hovered_window = g.HoveredWindow;
|
ImGuiWindow* backup_hovered_window = g.HoveredWindow;
|
||||||
const bool flatten_hovered_children = (flags & ImGuiButtonFlags_FlattenChildren) && g.HoveredWindow && g.HoveredWindow->RootWindow == window;
|
const bool flatten_hovered_children = (flags & ImGuiButtonFlags_FlattenChildren) && g.HoveredWindow && g.HoveredWindow->RootWindow == window;
|
||||||
if (flatten_hovered_children)
|
if (flatten_hovered_children)
|
||||||
@ -698,9 +703,6 @@ bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags
|
|||||||
if (!ItemAdd(bb, id))
|
if (!ItemAdd(bb, id))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (g.LastItemData.InFlags & ImGuiItemFlags_ButtonRepeat)
|
|
||||||
flags |= ImGuiButtonFlags_Repeat;
|
|
||||||
|
|
||||||
bool hovered, held;
|
bool hovered, held;
|
||||||
bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);
|
bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);
|
||||||
|
|
||||||
@ -777,9 +779,6 @@ bool ImGui::ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size, ImGuiBu
|
|||||||
if (!ItemAdd(bb, id))
|
if (!ItemAdd(bb, id))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (g.LastItemData.InFlags & ImGuiItemFlags_ButtonRepeat)
|
|
||||||
flags |= ImGuiButtonFlags_Repeat;
|
|
||||||
|
|
||||||
bool hovered, held;
|
bool hovered, held;
|
||||||
bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);
|
bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user