mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 12:41:06 +01:00 
			
		
		
		
	BeginPopup: Moved flags into individual BeginPopupXXX calls/implementations and outside of BeginPopupex(). Removed _NoResize flag which is extraneous with AlwaysAutoResize.
This commit is contained in:
		
							
								
								
									
										16
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -3828,15 +3828,13 @@ bool ImGui::BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags) | |||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     ImGuiWindowFlags flags = extra_flags|ImGuiWindowFlags_Popup|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings; |  | ||||||
|  |  | ||||||
|     char name[20]; |     char name[20]; | ||||||
|     if (flags & ImGuiWindowFlags_ChildMenu) |     if (extra_flags & ImGuiWindowFlags_ChildMenu) | ||||||
|         ImFormatString(name, IM_ARRAYSIZE(name), "##Menu_%02d", g.CurrentPopupStack.Size);    // Recycle windows based on depth |         ImFormatString(name, IM_ARRAYSIZE(name), "##Menu_%02d", g.CurrentPopupStack.Size);    // Recycle windows based on depth | ||||||
|     else |     else | ||||||
|         ImFormatString(name, IM_ARRAYSIZE(name), "##Popup_%08x", id); // Not recycling, so we can close/open during the same frame |         ImFormatString(name, IM_ARRAYSIZE(name), "##Popup_%08x", id); // Not recycling, so we can close/open during the same frame | ||||||
|  |  | ||||||
|     bool is_open = Begin(name, NULL, flags); |     bool is_open = Begin(name, NULL, extra_flags | ImGuiWindowFlags_Popup); | ||||||
|     if (!is_open) // NB: Begin can return false when the popup is completely clipped (e.g. zero size display) |     if (!is_open) // NB: Begin can return false when the popup is completely clipped (e.g. zero size display) | ||||||
|         EndPopup(); |         EndPopup(); | ||||||
|  |  | ||||||
| @@ -3851,7 +3849,7 @@ bool ImGui::BeginPopup(const char* str_id) | |||||||
|         ClearSetNextWindowData(); // We behave like Begin() and need to consume those values |         ClearSetNextWindowData(); // We behave like Begin() and need to consume those values | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
|     return BeginPopupEx(g.CurrentWindow->GetID(str_id), ImGuiWindowFlags_AlwaysAutoResize); |     return BeginPopupEx(g.CurrentWindow->GetID(str_id), ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings); | ||||||
| } | } | ||||||
|  |  | ||||||
| bool ImGui::IsPopupOpen(ImGuiID id) | bool ImGui::IsPopupOpen(ImGuiID id) | ||||||
| @@ -3926,7 +3924,7 @@ bool ImGui::BeginPopupContextItem(const char* str_id, int mouse_button) | |||||||
|     if (IsMouseClicked(mouse_button)) |     if (IsMouseClicked(mouse_button)) | ||||||
|         if (IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) |         if (IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) | ||||||
|             OpenPopupEx(id, true); |             OpenPopupEx(id, true); | ||||||
|     return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize); |     return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings); | ||||||
| } | } | ||||||
|  |  | ||||||
| bool ImGui::BeginPopupContextWindow(const char* str_id, int mouse_button, bool also_over_items) | bool ImGui::BeginPopupContextWindow(const char* str_id, int mouse_button, bool also_over_items) | ||||||
| @@ -3938,7 +3936,7 @@ bool ImGui::BeginPopupContextWindow(const char* str_id, int mouse_button, bool a | |||||||
|         if (IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) |         if (IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) | ||||||
|             if (also_over_items || !IsAnyItemHovered()) |             if (also_over_items || !IsAnyItemHovered()) | ||||||
|                 OpenPopupEx(id, true); |                 OpenPopupEx(id, true); | ||||||
|     return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize); |     return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings); | ||||||
| } | } | ||||||
|  |  | ||||||
| bool ImGui::BeginPopupContextVoid(const char* str_id, int mouse_button) | bool ImGui::BeginPopupContextVoid(const char* str_id, int mouse_button) | ||||||
| @@ -3948,7 +3946,7 @@ bool ImGui::BeginPopupContextVoid(const char* str_id, int mouse_button) | |||||||
|     ImGuiID id = GImGui->CurrentWindow->GetID(str_id); |     ImGuiID id = GImGui->CurrentWindow->GetID(str_id); | ||||||
|     if (!IsAnyWindowHovered() && IsMouseClicked(mouse_button)) |     if (!IsAnyWindowHovered() && IsMouseClicked(mouse_button)) | ||||||
|         OpenPopupEx(id, true); |         OpenPopupEx(id, true); | ||||||
|     return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize); |     return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings); | ||||||
| } | } | ||||||
|  |  | ||||||
| static bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags extra_flags) | static bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags extra_flags) | ||||||
| @@ -9754,7 +9752,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled) | |||||||
|     if (menu_is_open) |     if (menu_is_open) | ||||||
|     { |     { | ||||||
|         SetNextWindowPos(popup_pos, ImGuiCond_Always); |         SetNextWindowPos(popup_pos, ImGuiCond_Always); | ||||||
|         ImGuiWindowFlags flags = ImGuiWindowFlags_AlwaysAutoResize | ((window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) ? ImGuiWindowFlags_ChildMenu|ImGuiWindowFlags_ChildWindow : ImGuiWindowFlags_ChildMenu); |         ImGuiWindowFlags flags = ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings | ((window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) ? ImGuiWindowFlags_ChildMenu|ImGuiWindowFlags_ChildWindow : ImGuiWindowFlags_ChildMenu); | ||||||
|         menu_is_open = BeginPopupEx(id, flags); // menu_is_open can be 'false' when the popup is completely clipped (e.g. zero size display) |         menu_is_open = BeginPopupEx(id, flags); // menu_is_open can be 'false' when the popup is completely clipped (e.g. zero size display) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user