mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Viewports: Made it possible to explicitly assign ImGuiWindowClass::ParentViewportId to 0. (#3152, #2871)
This commit is contained in:
		| @@ -154,6 +154,9 @@ Other Changes: | |||||||
|  |  | ||||||
| Docking+Viewports Branch: | Docking+Viewports Branch: | ||||||
|  |  | ||||||
|  | - Viewports: Made it possible to explicitly assign ImGuiWindowClass::ParentViewportId to 0 in order | ||||||
|  |   to ensure a window is not parented. Previously this would use the global default (which might be 0, | ||||||
|  |   but not always as it would depend on io.ConfigViewportsNoDefaultParent). (#3152, #2871) | ||||||
| - Disabled: Fixed nested BeginDisabled()/EndDisabled() bug in Docking branch due to bad merge. (#4655, #4452, #4453, #4462) | - Disabled: Fixed nested BeginDisabled()/EndDisabled() bug in Docking branch due to bad merge. (#4655, #4452, #4453, #4462) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12457,7 +12457,7 @@ void ImGui::WindowSyncOwnedViewport(ImGuiWindow* window, ImGuiWindow* parent_win | |||||||
|  |  | ||||||
|     // Update parent viewport ID |     // Update parent viewport ID | ||||||
|     // (the !IsFallbackWindow test mimic the one done in WindowSelectViewport()) |     // (the !IsFallbackWindow test mimic the one done in WindowSelectViewport()) | ||||||
|     if (window->WindowClass.ParentViewportId) |     if (window->WindowClass.ParentViewportId != (ImGuiID)-1) | ||||||
|         window->Viewport->ParentViewportId = window->WindowClass.ParentViewportId; |         window->Viewport->ParentViewportId = window->WindowClass.ParentViewportId; | ||||||
|     else if ((window_flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_Tooltip)) && parent_window_in_stack && (!parent_window_in_stack->IsFallbackWindow || parent_window_in_stack->WasActive)) |     else if ((window_flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_Tooltip)) && parent_window_in_stack && (!parent_window_in_stack->IsFallbackWindow || parent_window_in_stack->WasActive)) | ||||||
|         window->Viewport->ParentViewportId = parent_window_in_stack->Viewport->ID; |         window->Viewport->ParentViewportId = parent_window_in_stack->Viewport->ID; | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -2100,7 +2100,7 @@ struct ImGuiSizeCallbackData | |||||||
| struct ImGuiWindowClass | struct ImGuiWindowClass | ||||||
| { | { | ||||||
|     ImGuiID             ClassId;                    // User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others. |     ImGuiID             ClassId;                    // User data. 0 = Default class (unclassed). Windows of different classes cannot be docked with each others. | ||||||
|     ImGuiID             ParentViewportId;           // Hint for the platform backend. If non-zero, the platform backend can create a parent<>child relationship between the platform windows. Not conforming backends are free to e.g. parent every viewport to the main viewport or not. |     ImGuiID             ParentViewportId;           // Hint for the platform backend. -1: use default. 0: request platform backend to not parent the platform. != 0: request platform backend to create a parent<>child relationship between the platform windows. Not conforming backends are free to e.g. parent every viewport to the main viewport or not. | ||||||
|     ImGuiViewportFlags  ViewportFlagsOverrideSet;   // Viewport flags to set when a window of this class owns a viewport. This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. |     ImGuiViewportFlags  ViewportFlagsOverrideSet;   // Viewport flags to set when a window of this class owns a viewport. This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. | ||||||
|     ImGuiViewportFlags  ViewportFlagsOverrideClear; // Viewport flags to clear when a window of this class owns a viewport. This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. |     ImGuiViewportFlags  ViewportFlagsOverrideClear; // Viewport flags to clear when a window of this class owns a viewport. This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. | ||||||
|     ImGuiTabItemFlags   TabItemFlagsOverrideSet;    // [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. |     ImGuiTabItemFlags   TabItemFlagsOverrideSet;    // [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. | ||||||
| @@ -2108,7 +2108,7 @@ struct ImGuiWindowClass | |||||||
|     bool                DockingAlwaysTabBar;        // Set to true to enforce single floating windows of this class always having their own docking node (equivalent of setting the global io.ConfigDockingAlwaysTabBar) |     bool                DockingAlwaysTabBar;        // Set to true to enforce single floating windows of this class always having their own docking node (equivalent of setting the global io.ConfigDockingAlwaysTabBar) | ||||||
|     bool                DockingAllowUnclassed;      // Set to true to allow windows of this class to be docked/merged with an unclassed window. // FIXME-DOCK: Move to DockNodeFlags override? |     bool                DockingAllowUnclassed;      // Set to true to allow windows of this class to be docked/merged with an unclassed window. // FIXME-DOCK: Move to DockNodeFlags override? | ||||||
|  |  | ||||||
|     ImGuiWindowClass() { memset(this, 0, sizeof(*this)); DockingAllowUnclassed = true; } |     ImGuiWindowClass() { memset(this, 0, sizeof(*this)); ParentViewportId = (ImGuiID)-1; DockingAllowUnclassed = true; } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| // Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload() | // Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user