|  |  | @ -884,8 +884,8 @@ CODE | 
			
		
	
		
		
			
				
					
					|  |  |  |       (The ImGuiWindowFlags_NoDecoration flag itself is a shortcut for NoTitleBar | NoResize | NoScrollbar | NoCollapse) |  |  |  |       (The ImGuiWindowFlags_NoDecoration flag itself is a shortcut for NoTitleBar | NoResize | NoScrollbar | NoCollapse) | 
			
		
	
		
		
			
				
					
					|  |  |  |       Then you can retrieve the ImDrawList* via GetWindowDrawList() and draw to it in any way you like. |  |  |  |       Then you can retrieve the ImDrawList* via GetWindowDrawList() and draw to it in any way you like. | 
			
		
	
		
		
			
				
					
					|  |  |  |     - You can call ImGui::GetOverlayDrawList() and use this draw list to display contents over every other imgui windows (1 overlay per viewport). |  |  |  |     - You can call ImGui::GetOverlayDrawList() and use this draw list to display contents over every other imgui windows (1 overlay per viewport). | 
			
		
	
		
		
			
				
					
					|  |  |  |     - You can create your own ImDrawList instance. You'll need to initialize them ImGui::GetDrawListSharedData(), or create your own ImDrawListSharedData, |  |  |  |     - You can create your own ImDrawList instance. You'll need to initialize them ImGui::GetDrawListSharedData(), or create | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       and then call your rendered code with your own ImDrawList or ImDrawData data. |  |  |  |       your own ImDrawListSharedData, and then call your rendered code with your own ImDrawList or ImDrawData data. | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  Q: How can I use this without a mouse, without a keyboard or without a screen? (gamepad, input share, remote display) |  |  |  |  Q: How can I use this without a mouse, without a keyboard or without a screen? (gamepad, input share, remote display) | 
			
		
	
		
		
			
				
					
					|  |  |  |  A: - You can control Dear ImGui with a gamepad. Read about navigation in "Using gamepad/keyboard navigation controls". |  |  |  |  A: - You can control Dear ImGui with a gamepad. Read about navigation in "Using gamepad/keyboard navigation controls". | 
			
		
	
	
		
		
			
				
					|  |  | @ -3576,7 +3576,7 @@ void ImGui::NewFrame() | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     UpdateViewportsNewFrame(); |  |  |  |     UpdateViewportsNewFrame(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Setup current font, and draw list shared data
 |  |  |  |     // Setup current font and draw list shared data
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     // FIXME-VIEWPORT: the concept of a single ClipRectFullscreen is not ideal!
 |  |  |  |     // FIXME-VIEWPORT: the concept of a single ClipRectFullscreen is not ideal!
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     g.IO.Fonts->Locked = true; |  |  |  |     g.IO.Fonts->Locked = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |     SetCurrentFont(GetDefaultFont()); |  |  |  |     SetCurrentFont(GetDefaultFont()); | 
			
		
	
	
		
		
			
				
					|  |  | @ -3587,7 +3587,8 @@ void ImGui::NewFrame() | 
			
		
	
		
		
			
				
					
					|  |  |  |     g.DrawListSharedData.ClipRectFullscreen = ImVec4(0.0f, 0.0f, virtual_space_max.x, virtual_space_max.y); |  |  |  |     g.DrawListSharedData.ClipRectFullscreen = ImVec4(0.0f, 0.0f, virtual_space_max.x, virtual_space_max.y); | 
			
		
	
		
		
			
				
					
					|  |  |  |     g.DrawListSharedData.CurveTessellationTol = g.Style.CurveTessellationTol; |  |  |  |     g.DrawListSharedData.CurveTessellationTol = g.Style.CurveTessellationTol; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Mark rendering data as invalid to prevent user who may have a handle on it to use it. Setup Overlay draw list for the viewport.
 |  |  |  |     // Setup Overlay draw list for the viewport.
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     // Mark rendering data as invalid to prevent user who may have a handle on it to use it.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     for (int n = 0; n < g.Viewports.Size; n++) |  |  |  |     for (int n = 0; n < g.Viewports.Size; n++) | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         ImGuiViewportP* viewport = g.Viewports[n]; |  |  |  |         ImGuiViewportP* viewport = g.Viewports[n]; | 
			
		
	
	
		
		
			
				
					|  |  | @ -5110,7 +5111,7 @@ static void ImGui::UpdateManualResize(ImGuiWindow* window, const ImVec2& size_au | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Apply back modified position/size to window
 |  |  |  |     // Apply back modified position/size to window
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (size_target.x != FLT_MAX && (size_target.x != window->SizeFull.x || size_target.y != window->SizeFull.y)) |  |  |  |     if (size_target.x != FLT_MAX) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         window->SizeFull = size_target; |  |  |  |         window->SizeFull = size_target; | 
			
		
	
		
		
			
				
					
					|  |  |  |         MarkIniSettingsDirty(window); |  |  |  |         MarkIniSettingsDirty(window); | 
			
		
	
	
		
		
			
				
					|  |  | @ -5451,9 +5452,6 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 MarkIniSettingsDirty(window); |  |  |  |                 MarkIniSettingsDirty(window); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         //if (window->DockNode && window->DockIsActive)
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         //    size_full_modified = window->SizeFull;
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Apply minimum/maximum window size constraints and final size
 |  |  |  |         // Apply minimum/maximum window size constraints and final size
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         window->SizeFull = CalcSizeAfterConstraint(window, window->SizeFull); |  |  |  |         window->SizeFull = CalcSizeAfterConstraint(window, window->SizeFull); | 
			
		
	
		
		
			
				
					
					|  |  |  |         window->Size = window->Collapsed && !(flags & ImGuiWindowFlags_ChildWindow) ? window->TitleBarRect().GetSize() : window->SizeFull; |  |  |  |         window->Size = window->Collapsed && !(flags & ImGuiWindowFlags_ChildWindow) ? window->TitleBarRect().GetSize() : window->SizeFull; | 
			
		
	
	
		
		
			
				
					|  |  | @ -5596,7 +5594,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (flags & ImGuiWindowFlags_Popup) |  |  |  |             if (flags & ImGuiWindowFlags_Popup) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 want_focus = true; |  |  |  |                 want_focus = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |             else if ((window->DockIsActive || !(flags & ImGuiWindowFlags_ChildWindow)) && !(flags & ImGuiWindowFlags_Tooltip)) |  |  |  |             else if ((window->DockIsActive || (flags & ImGuiWindowFlags_ChildWindow) == 0) && !(flags & ImGuiWindowFlags_Tooltip)) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 want_focus = true; |  |  |  |                 want_focus = true; | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -11398,10 +11396,9 @@ static void ImGui::DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_w | 
			
		
	
		
		
			
				
					
					|  |  |  |         node->IsFocused = is_focused; |  |  |  |         node->IsFocused = is_focused; | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (is_focused) |  |  |  |         if (is_focused) | 
			
		
	
		
		
			
				
					
					|  |  |  |             node->LastFrameFocused = g.FrameCount; |  |  |  |             node->LastFrameFocused = g.FrameCount; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Notify root of visible window (used to display title in OS task bar)
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (node->VisibleWindow) |  |  |  |         if (node->VisibleWindow) | 
			
		
	
		
		
			
				
					
					|  |  |  |         { |  |  |  |         { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             // Notify root of visible window (used to display title in OS task bar)
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (is_focused || root_node->VisibleWindow == NULL) |  |  |  |             if (is_focused || root_node->VisibleWindow == NULL) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 root_node->VisibleWindow = node->VisibleWindow; |  |  |  |                 root_node->VisibleWindow = node->VisibleWindow; | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (node->TabBar) |  |  |  |             if (node->TabBar) | 
			
		
	
	
		
		
			
				
					|  |  | @ -13173,6 +13170,9 @@ static void ImGui::DockSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettings | 
			
		
	
		
		
			
				
					
					|  |  |  | //-----------------------------------------------------------------------------
 |  |  |  | //-----------------------------------------------------------------------------
 | 
			
		
	
		
		
			
				
					
					|  |  |  | // [SECTION] LOGGING/CAPTURING
 |  |  |  | // [SECTION] LOGGING/CAPTURING
 | 
			
		
	
		
		
			
				
					
					|  |  |  | //-----------------------------------------------------------------------------
 |  |  |  | //-----------------------------------------------------------------------------
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | // All text output from the interface can be captured into tty/file/clipboard. 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | // By default, tree nodes are automatically opened during logging.
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | //-----------------------------------------------------------------------------
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | // Pass text data straight to log (without being displayed)
 |  |  |  | // Pass text data straight to log (without being displayed)
 | 
			
		
	
		
		
			
				
					
					|  |  |  | void ImGui::LogText(const char* fmt, ...) |  |  |  | void ImGui::LogText(const char* fmt, ...) | 
			
		
	
	
		
		
			
				
					|  |  | 
 |