mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Internals: Add a way to request window to not process any interactions for specified number of frames.
This commit is contained in:
		| @@ -134,7 +134,7 @@ bool    ImGui_ImplWin32_Init(void* hwnd) | ||||
|             break; | ||||
|         } | ||||
| #endif // IMGUI_IMPL_WIN32_DISABLE_GAMEPAD | ||||
|      | ||||
|  | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| @@ -148,7 +148,7 @@ void    ImGui_ImplWin32_Shutdown() | ||||
|     g_XInputGetCapabilities = NULL; | ||||
|     g_XInputGetState = NULL; | ||||
| #endif // IMGUI_IMPL_WIN32_DISABLE_GAMEPAD | ||||
|      | ||||
|  | ||||
|     g_hWnd = NULL; | ||||
|     g_Time = 0; | ||||
|     g_TicksPerSecond = 0; | ||||
|   | ||||
| @@ -6294,6 +6294,13 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|         // Update the Hidden flag | ||||
|         window->Hidden = (window->HiddenFramesCanSkipItems > 0) || (window->HiddenFramesCannotSkipItems > 0) || (window->HiddenFramesForRenderOnly > 0); | ||||
|  | ||||
|         // Disable inputs for requested number of frames | ||||
|         if (window->DisableInputsFrames > 0) | ||||
|         { | ||||
|             window->DisableInputsFrames--; | ||||
|             window->Flags |= ImGuiWindowFlags_NoInputs; | ||||
|         } | ||||
|  | ||||
|         // Update the SkipItems flag, used to early out of all items functions (no layout required) | ||||
|         bool skip_items = false; | ||||
|         if (window->Collapsed || !window->Active || window->Hidden) | ||||
|   | ||||
| @@ -1784,6 +1784,7 @@ struct IMGUI_API ImGuiWindow | ||||
|     ImS8                    HiddenFramesCanSkipItems;           // Hide the window for N frames | ||||
|     ImS8                    HiddenFramesCannotSkipItems;        // Hide the window for N frames while allowing items to be submitted so we can measure their size | ||||
|     ImS8                    HiddenFramesForRenderOnly;          // Hide the window until frame N at Render() time only | ||||
|     ImS8                    DisableInputsFrames;                // Disable window interactions for N frames | ||||
|     ImGuiCond               SetWindowPosAllowFlags : 8;         // store acceptable condition flags for SetNextWindowPos() use. | ||||
|     ImGuiCond               SetWindowSizeAllowFlags : 8;        // store acceptable condition flags for SetNextWindowSize() use. | ||||
|     ImGuiCond               SetWindowCollapsedAllowFlags : 8;   // store acceptable condition flags for SetNextWindowCollapsed() use. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user