mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Merge branch 'master' into navigation
This commit is contained in:
		
							
								
								
									
										14
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -5017,12 +5017,14 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|     else | ||||
|         flags = window->Flags; | ||||
|  | ||||
|     // Parent window is latched only on the first call to Begin() of the frame, so further append-calls can be done from a different window stack | ||||
|     ImGuiWindow* parent_window = first_begin_of_the_frame ? (!g.CurrentWindowStack.empty() ? g.CurrentWindowStack.back() : NULL) : window->ParentWindow; | ||||
|     IM_ASSERT(parent_window != NULL || !(flags & ImGuiWindowFlags_ChildWindow)); | ||||
|  | ||||
|     // Add to stack | ||||
|     ImGuiWindow* parent_window = !g.CurrentWindowStack.empty() ? g.CurrentWindowStack.back() : NULL; | ||||
|     g.CurrentWindowStack.push_back(window); | ||||
|     SetCurrentWindow(window); | ||||
|     CheckStacksSize(window, true); | ||||
|     IM_ASSERT(parent_window != NULL || !(flags & ImGuiWindowFlags_ChildWindow)); | ||||
|  | ||||
|     bool window_just_activated_by_user = (window->LastFrameActive < current_frame - 1);   // Not using !WasActive because the implicit "Debug" window would always toggle off->on | ||||
|     if (flags & ImGuiWindowFlags_Popup) | ||||
| @@ -6831,6 +6833,10 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool | ||||
|     if ((flags & ImGuiButtonFlags_FlattenChilds) && g.HoveredRootWindow == window) | ||||
|         g.HoveredWindow = backup_hovered_window; | ||||
|  | ||||
|     // AllowOverlap mode (rarely used) requires previous frame HoveredId to be null or to match. This allows using patterns where a later submitted widget overlaps a previous one. | ||||
|     if (hovered && (flags & ImGuiButtonFlags_AllowOverlapMode) && (g.HoveredIdPreviousFrame != id && g.HoveredIdPreviousFrame != 0)) | ||||
|         hovered = false; | ||||
|  | ||||
|     if (hovered) | ||||
|     { | ||||
|         if (!(flags & ImGuiButtonFlags_NoKeyModifiers) || (!g.IO.KeyCtrl && !g.IO.KeyShift && !g.IO.KeyAlt)) | ||||
| @@ -6928,10 +6934,6 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     // AllowOverlap mode (rarely used) requires previous frame HoveredId to be null or to match. This allows using patterns where a later submitted widget overlaps a previous one. | ||||
|     if (hovered && (flags & ImGuiButtonFlags_AllowOverlapMode) && (g.HoveredIdPreviousFrame != id && g.HoveredIdPreviousFrame != 0)) | ||||
|         hovered = pressed = held = false; | ||||
|  | ||||
|     if (out_hovered) *out_hovered = hovered; | ||||
|     if (out_held) *out_held = held; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user