mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Viewports, Backend: SDL: Fix missing ImGuiBackendFlags_HasSetMousePos flag in docking branch (ok in master), GLFW: Fix application of WantSetMousePos. (#1542, #787)
Shows how little this feature is used with nav (was designed for small devices and frankly may be dropped) - but the backend support itself we will make use of for other features.
This commit is contained in:
		| @@ -168,6 +168,7 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window, void* sdl_gl_context) | ||||
|     // Setup backend capabilities flags | ||||
|     ImGuiIO& io = ImGui::GetIO(); | ||||
|     io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors;       // We can honor GetMouseCursor() values (optional) | ||||
|     io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos;        // We can honor io.WantSetMousePos requests (optional, rarely used) | ||||
| #if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE | ||||
|     io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports;  // We can create multi-viewports on the Platform side (optional) | ||||
| #endif | ||||
|   | ||||
| @@ -218,7 +218,7 @@ static void ImGui_ImplWin32_UpdateMousePos() | ||||
|     if (io.WantSetMousePos) | ||||
|     { | ||||
|         POINT pos = { (int)io.MousePos.x, (int)io.MousePos.y }; | ||||
|         if ((io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) != 0 || ::ClientToScreen(g_hWnd, &pos)) | ||||
|         if ((io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) == 0) | ||||
|             ::ClientToScreen(g_hWnd, &pos); | ||||
|         ::SetCursorPos(pos.x, pos.y); | ||||
|     } | ||||
|   | ||||
| @@ -9530,6 +9530,7 @@ static inline void ImGui::NavUpdateAnyRequestFlag() | ||||
| // This needs to be called before we submit any widget (aka in or before Begin) | ||||
| void ImGui::NavInitWindow(ImGuiWindow* window, bool force_reinit) | ||||
| { | ||||
|     // FIXME: ChildWindow test here is wrong for docking | ||||
|     ImGuiContext& g = *GImGui; | ||||
|     IM_ASSERT(window == g.NavWindow); | ||||
|     bool init_for_nav = false; | ||||
| @@ -11206,7 +11207,6 @@ static void WindowSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandl | ||||
|         buf->appendf("Collapsed=%d\n", settings->Collapsed); | ||||
|         if (settings->DockId != 0) | ||||
|         { | ||||
|             // Write DockId as 4 digits if possible. Automatic DockId are small numbers, but full explicit DockSpace() are full ImGuiID range. | ||||
|             if (settings->DockOrder == -1) | ||||
|                 buf->appendf("DockId=0x%08X\n", settings->DockId); | ||||
|             else | ||||
|   | ||||
| @@ -188,9 +188,9 @@ namespace ImStb | ||||
|  | ||||
| // Debug Logging for selected systems. Remove the '((void)0) //' to enable. | ||||
| //#define IMGUI_DEBUG_LOG_POPUP         IMGUI_DEBUG_LOG // Enable log | ||||
| //#define IMGUI_DEBUG_LOG_NAV           IMGUI_DEBUG_LOG // Enable log | ||||
| //#define IMGUI_DEBUG_LOG_VIEWPORT      IMGUI_DEBUG_LOG // Enable log | ||||
| //#define IMGUI_DEBUG_LOG_DOCKING       IMGUI_DEBUG_LOG // Enable log | ||||
| //#define IMGUI_DEBUG_LOG_NAV           IMGUI_DEBUG_LOG // Enable log | ||||
| #define IMGUI_DEBUG_LOG_POPUP(...)      ((void)0)       // Disable log | ||||
| #define IMGUI_DEBUG_LOG_NAV(...)        ((void)0)       // Disable log | ||||
| #define IMGUI_DEBUG_LOG_VIEWPORT(...)   ((void)0)       // Disable log | ||||
|   | ||||
		Reference in New Issue
	
	Block a user