Nav: Changed internal flag to NoNavDefaultFocus to be false by allow, and more consistent (#787)

This commit is contained in:
omar 2017-09-28 19:18:41 +02:00
parent af38749ea1
commit e0a2a832cd
2 changed files with 6 additions and 5 deletions

View File

@ -2189,9 +2189,9 @@ bool ImGui::ItemAdd(const ImRect& bb, const ImGuiID* id, const ImRect* nav_bb_ar
if (g.NavInitDefaultRequest && g.NavLayer == window->DC.NavLayerCurrent)
{
// Even if 'ImGuiItemFlags_AllowNavDefaultFocus' is off (typically collapse/close button) we record the first ResultId so they can be used as fallback
if (window->DC.ItemFlags & ImGuiItemFlags_AllowNavDefaultFocus)
if (!(window->DC.ItemFlags & ImGuiItemFlags_NoNavDefaultFocus))
g.NavInitDefaultRequest = g.NavInitDefaultResultExplicit = false; // Found a match, clear request
if (g.NavInitDefaultResultId == 0 || (window->DC.ItemFlags & ImGuiItemFlags_AllowNavDefaultFocus))
if (g.NavInitDefaultResultId == 0 || !(window->DC.ItemFlags & ImGuiItemFlags_NoNavDefaultFocus))
{
g.NavInitDefaultResultId = *id;
g.NavInitDefaultResultRectRel = nav_bb_rel;
@ -5242,7 +5242,7 @@ bool ImGui::Begin(const char* name, bool* p_open, const ImVec2& size_on_first_us
{
// Close & collapse button are on layer 1 (same as menus) and don't default focus
const ImGuiItemFlags backup_item_options = window->DC.ItemFlags;
window->DC.ItemFlags &= ~ImGuiItemFlags_AllowNavDefaultFocus;
window->DC.ItemFlags |= ImGuiItemFlags_NoNavDefaultFocus;
window->DC.NavLayerCurrent++;
// Collapse button

View File

@ -167,6 +167,7 @@ inline void operator delete(void*, ImPlacementNewDummy, void*) {}
// Types
//-----------------------------------------------------------------------------
// NB: Most of those flags are handled by ButtonBehavior(), but some as for the higher level ButtonEx() function only.
enum ImGuiButtonFlags_
{
ImGuiButtonFlags_Repeat = 1 << 0, // hold to repeat
@ -637,9 +638,9 @@ enum ImGuiItemFlags_
ImGuiItemFlags_AllowKeyboardFocus = 1 << 0, // true
ImGuiItemFlags_ButtonRepeat = 1 << 1, // false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
//ImGuiItemFlags_Disabled = 1 << 2, // false // All widgets appears are disabled
ImGuiItemFlags_AllowNavDefaultFocus = 1 << 3, // true
ImGuiItemFlags_NoNavDefaultFocus = 1 << 3, // true
ImGuiItemFlags_SelectableDontClosePopup = 1 << 4, // false // MenuItem/Selectable() automatically closes current Popup window
ImGuiItemFlags_Default_ = ImGuiItemFlags_AllowKeyboardFocus|ImGuiItemFlags_AllowNavDefaultFocus
ImGuiItemFlags_Default_ = ImGuiItemFlags_AllowKeyboardFocus
};
// Transient per-window data, reset at the beginning of the frame