mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Viewport: Comments about honoring ImGuiViewportFlags_NoInputs and MouseHoveredViewport. (#1542)
This commit is contained in:
		@@ -387,6 +387,10 @@ static LRESULT CALLBACK WndProcNoInputs(HWND hWnd, UINT msg, WPARAM wParam, LPAR
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    if (msg == WM_NCHITTEST)
 | 
					    if (msg == WM_NCHITTEST)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        // Let mouse pass-through the window. This will allow the back-end to set io.MouseHoveredViewport properly (which is OPTIONAL).
 | 
				
			||||||
 | 
					        // The ImGuiViewportFlags_NoInputs flag is set while dragging a viewport, as want to detect the window behind the one we are dragging.
 | 
				
			||||||
 | 
					        // If you cannot easily access those viewport flags from your windowing/event code: you may manually synchronize its state e.g. in
 | 
				
			||||||
 | 
					        // your main loop after calling UpdatePlatformWindows(). Iterate all viewports/platform windows and pass the flag to your windowing system.
 | 
				
			||||||
        ImGuiViewport* viewport = (ImGuiViewport*)::GetPropA(hWnd, "IMGUI_VIEWPORT");
 | 
					        ImGuiViewport* viewport = (ImGuiViewport*)::GetPropA(hWnd, "IMGUI_VIEWPORT");
 | 
				
			||||||
        if (viewport->Flags & ImGuiViewportFlags_NoInputs)
 | 
					        if (viewport->Flags & ImGuiViewportFlags_NoInputs)
 | 
				
			||||||
            return HTTRANSPARENT;
 | 
					            return HTTRANSPARENT;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -503,7 +503,10 @@ static LRESULT CALLBACK ImGui_ImplWin32_WndProcHandler_PlatformWindow(HWND hWnd,
 | 
				
			|||||||
            viewport->PlatformRequestResize = true;
 | 
					            viewport->PlatformRequestResize = true;
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case WM_NCHITTEST:
 | 
					        case WM_NCHITTEST:
 | 
				
			||||||
            // Let mouse pass-through the window, this is used while e.g. dragging a window, we creates a temporary overlay but want the cursor to aim behind our overlay.
 | 
					            // Let mouse pass-through the window. This will allow the back-end to set io.MouseHoveredViewport properly (which is OPTIONAL).
 | 
				
			||||||
 | 
					            // The ImGuiViewportFlags_NoInputs flag is set while dragging a viewport, as want to detect the window behind the one we are dragging.
 | 
				
			||||||
 | 
					            // If you cannot easily access those viewport flags from your windowing/event code: you may manually synchronize its state e.g. in
 | 
				
			||||||
 | 
					            // your main loop after calling UpdatePlatformWindows(). Iterate all viewports/platform windows and pass the flag to your windowing system.
 | 
				
			||||||
            if (viewport->Flags & ImGuiViewportFlags_NoInputs)
 | 
					            if (viewport->Flags & ImGuiViewportFlags_NoInputs)
 | 
				
			||||||
                return HTTRANSPARENT;
 | 
					                return HTTRANSPARENT;
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							@@ -1079,7 +1079,7 @@ struct ImGuiIO
 | 
				
			|||||||
    float       MouseWheel;                     // Mouse wheel Vertical: 1 unit scrolls about 5 lines text. 
 | 
					    float       MouseWheel;                     // Mouse wheel Vertical: 1 unit scrolls about 5 lines text. 
 | 
				
			||||||
    float       MouseWheelH;                    // Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all back-ends.
 | 
					    float       MouseWheelH;                    // Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all back-ends.
 | 
				
			||||||
    ImGuiID     MousePosViewport;               // (Optional) When using multiple viewports: viewport from which io.MousePos is based from (when dragging this is generally the captured/focused viewport, even though we can drag outside of it and then it's not hovered anymore). (0 == default viewport)
 | 
					    ImGuiID     MousePosViewport;               // (Optional) When using multiple viewports: viewport from which io.MousePos is based from (when dragging this is generally the captured/focused viewport, even though we can drag outside of it and then it's not hovered anymore). (0 == default viewport)
 | 
				
			||||||
    ImGuiID     MouseHoveredViewport;           // (Optional) When using multiple viewports: viewport the OS mouse cursor is hovering. (0 == default viewport)
 | 
					    ImGuiID     MouseHoveredViewport;           // (Optional) When using multiple viewports: viewport the OS mouse cursor is hovering. (0 == default viewport) _IGNORING_ viewports with the ImGuiBackendFlags_HasMouseHoveredViewport flag, and _REGARDLESS_ of whether another viewport is focused. Set io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport if you can provide this information.
 | 
				
			||||||
    bool        MouseDrawCursor;                // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor).
 | 
					    bool        MouseDrawCursor;                // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor).
 | 
				
			||||||
    bool        KeyCtrl;                        // Keyboard modifier pressed: Control
 | 
					    bool        KeyCtrl;                        // Keyboard modifier pressed: Control
 | 
				
			||||||
    bool        KeyShift;                       // Keyboard modifier pressed: Shift
 | 
					    bool        KeyShift;                       // Keyboard modifier pressed: Shift
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user