mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-20 23:06:36 +00: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:
parent
705f082674
commit
d5a4d53000
@ -168,6 +168,7 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window, void* sdl_gl_context)
|
|||||||
// Setup backend capabilities flags
|
// Setup backend capabilities flags
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors; // We can honor GetMouseCursor() values (optional)
|
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
|
#if SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE
|
||||||
io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports; // We can create multi-viewports on the Platform side (optional)
|
io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports; // We can create multi-viewports on the Platform side (optional)
|
||||||
#endif
|
#endif
|
||||||
|
@ -218,7 +218,7 @@ static void ImGui_ImplWin32_UpdateMousePos()
|
|||||||
if (io.WantSetMousePos)
|
if (io.WantSetMousePos)
|
||||||
{
|
{
|
||||||
POINT pos = { (int)io.MousePos.x, (int)io.MousePos.y };
|
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);
|
::ClientToScreen(g_hWnd, &pos);
|
||||||
::SetCursorPos(pos.x, pos.y);
|
::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)
|
// This needs to be called before we submit any widget (aka in or before Begin)
|
||||||
void ImGui::NavInitWindow(ImGuiWindow* window, bool force_reinit)
|
void ImGui::NavInitWindow(ImGuiWindow* window, bool force_reinit)
|
||||||
{
|
{
|
||||||
|
// FIXME: ChildWindow test here is wrong for docking
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
IM_ASSERT(window == g.NavWindow);
|
IM_ASSERT(window == g.NavWindow);
|
||||||
bool init_for_nav = false;
|
bool init_for_nav = false;
|
||||||
@ -11206,7 +11207,6 @@ static void WindowSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandl
|
|||||||
buf->appendf("Collapsed=%d\n", settings->Collapsed);
|
buf->appendf("Collapsed=%d\n", settings->Collapsed);
|
||||||
if (settings->DockId != 0)
|
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)
|
if (settings->DockOrder == -1)
|
||||||
buf->appendf("DockId=0x%08X\n", settings->DockId);
|
buf->appendf("DockId=0x%08X\n", settings->DockId);
|
||||||
else
|
else
|
||||||
|
@ -188,9 +188,9 @@ namespace ImStb
|
|||||||
|
|
||||||
// Debug Logging for selected systems. Remove the '((void)0) //' to enable.
|
// 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_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_VIEWPORT IMGUI_DEBUG_LOG // Enable log
|
||||||
//#define IMGUI_DEBUG_LOG_DOCKING 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_POPUP(...) ((void)0) // Disable log
|
||||||
#define IMGUI_DEBUG_LOG_NAV(...) ((void)0) // Disable log
|
#define IMGUI_DEBUG_LOG_NAV(...) ((void)0) // Disable log
|
||||||
#define IMGUI_DEBUG_LOG_VIEWPORT(...) ((void)0) // Disable log
|
#define IMGUI_DEBUG_LOG_VIEWPORT(...) ((void)0) // Disable log
|
||||||
|
Loading…
Reference in New Issue
Block a user