1
0
Fork 0
mirror of https://github.com/ocornut/imgui.git synced 2026-01-11 00:04:24 +00:00

Add indentation to ButtonBehavior() - no logic change.

This commit is contained in:
ocornut 2025-10-29 16:39:37 +01:00
parent 0ba9fedf1a
commit 7c483a0eba
2 changed files with 27 additions and 25 deletions

View file

@ -77,7 +77,7 @@ Other Changes:
instead of IMGUI_IMPL_WEBGPU_BACKEND_WGPU, if neither are specified. instead of IMGUI_IMPL_WEBGPU_BACKEND_WGPU, if neither are specified.
(note: examples application were not updated yet) (note: examples application were not updated yet)
- Win32: Revert 1.92.4 change of comparing dwPacketNumber, which prevents - Win32: Revert 1.92.4 change of comparing dwPacketNumber, which prevents
refreshing accurate gamepad info after focus-out + io.ClearInputsKey(). (#8556) refreshing accurate gamepad info after focus-out + io.ClearInputKeys(). (#8556)
- Examples: - Examples:
- GLFW+WebGPU: removed unnecessary ImGui_ImplWGPU_InvalidateDeviceObjects() call - GLFW+WebGPU: removed unnecessary ImGui_ImplWGPU_InvalidateDeviceObjects() call

View file

@ -675,32 +675,34 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
// Keyboard/Gamepad navigation handling // Keyboard/Gamepad navigation handling
// We report navigated and navigation-activated items as hovered but we don't set g.HoveredId to not interfere with mouse. // We report navigated and navigation-activated items as hovered but we don't set g.HoveredId to not interfere with mouse.
if (g.NavId == id && g.NavCursorVisible && g.NavHighlightItemUnderNav)
if (!(flags & ImGuiButtonFlags_NoHoveredOnFocus))
hovered = true;
if (g.NavActivateDownId == id)
{ {
bool nav_activated_by_code = (g.NavActivateId == id); if (g.NavId == id && g.NavCursorVisible && g.NavHighlightItemUnderNav)
bool nav_activated_by_inputs = (g.NavActivatePressedId == id); if (!(flags & ImGuiButtonFlags_NoHoveredOnFocus))
if (!nav_activated_by_inputs && (item_flags & ImGuiItemFlags_ButtonRepeat)) hovered = true;
if (g.NavActivateDownId == id)
{ {
// Avoid pressing multiple keys from triggering excessive amount of repeat events bool nav_activated_by_code = (g.NavActivateId == id);
const ImGuiKeyData* key1 = GetKeyData(ImGuiKey_Space); bool nav_activated_by_inputs = (g.NavActivatePressedId == id);
const ImGuiKeyData* key2 = GetKeyData(ImGuiKey_Enter); if (!nav_activated_by_inputs && (item_flags & ImGuiItemFlags_ButtonRepeat))
const ImGuiKeyData* key3 = GetKeyData(ImGuiKey_NavGamepadActivate); {
const float t1 = ImMax(ImMax(key1->DownDuration, key2->DownDuration), key3->DownDuration); // Avoid pressing multiple keys from triggering excessive amount of repeat events
nav_activated_by_inputs = CalcTypematicRepeatAmount(t1 - g.IO.DeltaTime, t1, g.IO.KeyRepeatDelay, g.IO.KeyRepeatRate) > 0; const ImGuiKeyData* key1 = GetKeyData(ImGuiKey_Space);
} const ImGuiKeyData* key2 = GetKeyData(ImGuiKey_Enter);
if (nav_activated_by_code || nav_activated_by_inputs) const ImGuiKeyData* key3 = GetKeyData(ImGuiKey_NavGamepadActivate);
{ const float t1 = ImMax(ImMax(key1->DownDuration, key2->DownDuration), key3->DownDuration);
// Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button. nav_activated_by_inputs = CalcTypematicRepeatAmount(t1 - g.IO.DeltaTime, t1, g.IO.KeyRepeatDelay, g.IO.KeyRepeatRate) > 0;
pressed = true; }
SetActiveID(id, window); if (nav_activated_by_code || nav_activated_by_inputs)
g.ActiveIdSource = g.NavInputSource; {
if (!(flags & ImGuiButtonFlags_NoNavFocus) && !(g.NavActivateFlags & ImGuiActivateFlags_FromShortcut)) // Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button.
SetFocusID(id, window); pressed = true;
if (g.NavActivateFlags & ImGuiActivateFlags_FromShortcut) SetActiveID(id, window);
g.ActiveIdFromShortcut = true; g.ActiveIdSource = g.NavInputSource;
if (!(flags & ImGuiButtonFlags_NoNavFocus) && !(g.NavActivateFlags & ImGuiActivateFlags_FromShortcut))
SetFocusID(id, window);
if (g.NavActivateFlags & ImGuiActivateFlags_FromShortcut)
g.ActiveIdFromShortcut = true;
}
} }
} }