mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Viewports: Fixed being unable to refocus windows when ConfigViewportsNoTaskBarIcon + ConfigViewportsNoDecoration are enabled. (#2420, #1542) [@PathogenDavid] + comments.
This commit is contained in:
		
							
								
								
									
										12
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -5611,13 +5611,19 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|  | ||||
|             // Update common viewport flags | ||||
|             ImGuiViewportFlags viewport_flags = (window->Viewport->Flags) & ~(ImGuiViewportFlags_TopMost | ImGuiViewportFlags_NoTaskBarIcon | ImGuiViewportFlags_NoDecoration); | ||||
|             const bool is_short_lived_floating_window = (flags & (ImGuiWindowFlags_ChildMenu | ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) != 0; | ||||
|             if (flags & ImGuiWindowFlags_Tooltip) | ||||
|                 viewport_flags |= ImGuiViewportFlags_TopMost; | ||||
|             if (g.IO.ConfigViewportsNoTaskBarIcon || (flags & (ImGuiWindowFlags_ChildMenu | ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) != 0) | ||||
|             if (g.IO.ConfigViewportsNoTaskBarIcon || is_short_lived_floating_window) | ||||
|                 viewport_flags |= ImGuiViewportFlags_NoTaskBarIcon; | ||||
|             if (g.IO.ConfigViewportsNoDecoration || (flags & (ImGuiWindowFlags_ChildMenu | ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) != 0) | ||||
|             if (g.IO.ConfigViewportsNoDecoration || is_short_lived_floating_window) | ||||
|                 viewport_flags |= ImGuiViewportFlags_NoDecoration; | ||||
|             if ((viewport_flags & ImGuiViewportFlags_NoDecoration) && (viewport_flags & ImGuiViewportFlags_NoTaskBarIcon)) | ||||
|  | ||||
|             // For popups and menus that may be protruding out of their parent viewport, we enable _NoFocusOnClick so that clicking on them | ||||
|             // won't steal the OS focus away from their parent window (which may be reflected in OS the title bar decoration). | ||||
|             // Setting _NoFocusOnClick would technically prevent us from bringing back to front in case they are being covered by an OS window from a different app,  | ||||
|             // but it shouldn't be much of a problem considering those are already popups that are closed when clicking elsewhere. | ||||
|             if (is_short_lived_floating_window) | ||||
|                 viewport_flags |= ImGuiViewportFlags_NoFocusOnAppearing | ImGuiViewportFlags_NoFocusOnClick; | ||||
|  | ||||
|             // We can overwrite viewport flags using ImGuiWindowClass (advanced users) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user