283 Commits

Author SHA1 Message Date
Bjorn Schobben
c65a3e2d6e Viewports: consume exact setter echoes before Begin.
Leftover PlatformRequestMove/Resize from a successful Set (Win32 WM_MOVE)
stayed authoritative through the following Begin, so SetNextWindowPos/Size,
clamp, and nav updates on a floating viewport were discarded. Apply the
platform rect in NewFrame and clear the flag when geometry matches the last
submitted request. Keep the flag when the OS actually adjusted the rect.
Drag rebase compares truncated LastPlatform* so a clamped axis does not
hitch the free one.

GLFW: drop the second X connection. Poll live geometry after a stable
unanswered X11 Set instead. Pre-3.4 IsWayland() no longer assumes Wayland
when X11 native headers are missing.
2026-08-19 01:05:05 +02:00
Bjorn Schobben
b3ea4243b1 Fix GLFW X11 viewport synchronization 2026-08-12 15:51:11 +02:00
ocornut
d098bf9657 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	imgui.cpp
#	imgui.h
#	imgui_internal.h
2026-07-03 16:59:31 +02:00
ocornut
9e6c0416fe Backends: GLFW,SDL2,SDL3: added wayland/driver marker in io.BackendPlatformName.
+ Stored bd->IsWayland variable for e.g. #7433
2026-06-29 18:26:59 +02:00
ocornut
a31071573b Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx11.cpp
#	backends/imgui_impl_dx12.cpp
#	backends/imgui_impl_dx9.cpp
#	backends/imgui_impl_metal.h
#	backends/imgui_impl_metal.mm
#	backends/imgui_impl_opengl2.cpp
#	backends/imgui_impl_opengl3.cpp
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_sdlgpu3.cpp
#	backends/imgui_impl_sdlrenderer2.cpp
#	backends/imgui_impl_sdlrenderer2.h
#	backends/imgui_impl_vulkan.cpp
#	imgui.cpp
2026-04-23 22:11:04 +02:00
ocornut
f2f843c113 Fixed some extremely zealous warnings (GCC -Wconversion, -Wdouble-promotion)
(amend a1e0552)
2026-04-23 17:23:43 +02:00
ocornut
dee5bf3ec3 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx9.cpp
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_metal.mm
#	backends/imgui_impl_opengl2.cpp
#	backends/imgui_impl_opengl3.cpp
#	backends/imgui_impl_vulkan.cpp
#	imgui.cpp
2026-04-23 16:07:01 +02:00
ocornut
a1e05521e9 Backends: GLFW: added a Win32-specific implementation of ImGui_ImplGlfw_GetContentScaleXXXX functions for legacy GLFW 3.2. (#9003)
Since we ship GLFW 3.2 binaries for Windows this makes our examples a little better behaving by default.
Ideally we'd use ImGui_ImplWin32_GetDpiScaleForHwnd() and ImGui_ImplWin32_GetDpiScaleForMonitor() but they are too much code to copy.
2026-04-21 17:24:41 +02:00
ocornut
fe5c5298a6 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	imgui.h
2026-03-31 21:48:34 +02:00
ocornut
51f590a2a8 Backends: GLFW: mouse cursor is properly restored if changed by user app/code while using glfwSetInputMode(..., GLFW_CURSOR_DISABLED) or ImGuiConfigFlags_NoMouseCursorChange. (#9322)
Amend 9a4fd69f6
2026-03-25 14:17:29 +01:00
ocornut
943fcc4f10 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	imgui.cpp
2026-02-10 20:52:55 +01:00
ocornut
9f30044333 Backends: GLFW: try to set IMGUI_IMPL_GLFW_DISABLE_X11 / IMGUI_IMPL_GLFW_DISABLE_WAYLAND automatically if headers are not available. (#9225)
Amend/fix 10d0162378 for system without X11/Wayland headers. (#8921, #8920, #8969)
2026-02-10 20:50:46 +01:00
ocornut
63e9fbc265 Backends: GLFW: fix previous commit, would break multi-monitor. (#9195, #7902, #5683)
Amend be2cfc2
2026-01-28 14:51:21 +01:00
ocornut
be2cfc26c9 Backends: GLFW: improve workarounds for cases where GLFW is unable to provide reliable monitor info. (#9195, #7902, #5683) 2026-01-25 13:24:20 +01:00
ocornut
2a08c87b8c Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx11.cpp
#	backends/imgui_impl_dx12.cpp
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	examples/example_glfw_metal/main.mm
#	examples/example_glfw_opengl2/main.cpp
#	examples/example_glfw_opengl3/main.cpp
#	examples/example_glfw_vulkan/main.cpp
#	examples/example_sdl2_directx11/main.cpp
#	examples/example_sdl2_opengl2/main.cpp
#	examples/example_sdl2_opengl3/main.cpp
#	examples/example_sdl2_sdlrenderer2/main.cpp
#	examples/example_sdl2_vulkan/main.cpp
#	examples/example_sdl3_directx11/main.cpp
#	examples/example_sdl3_opengl3/main.cpp
#	examples/example_sdl3_sdlgpu3/main.cpp
#	examples/example_sdl3_sdlrenderer3/main.cpp
#	examples/example_sdl3_vulkan/main.cpp
#	examples/example_win32_directx10/main.cpp
#	examples/example_win32_directx11/main.cpp
#	examples/example_win32_directx12/main.cpp
#	examples/example_win32_directx9/main.cpp
#	examples/example_win32_opengl3/main.cpp
#	examples/example_win32_vulkan/main.cpp
#	imgui_internal.h
2026-01-23 16:05:50 +01:00
ocornut
21d3299e58 Backends: fixed reappearing uses to NULL to favor nullptr. 2026-01-15 16:09:01 +01:00
Dario Mylonopoulos
84a9d532b6 Backends: GLFW: Load X11 functions dynamically to avoid x11 linking requirement. (#9116, #9109)
Amend 6b2cdf2 (#8884, #8474, #8289)
2026-01-08 14:55:10 +01:00
ocornut
9ce41a92c3 Misc/shallow merges from docking branch to reduce small drift. 2026-01-08 14:31:25 +01:00
ocornut
0a4783309d Renamed IM_ARRAYSIZE() -> IM_COUNTOF(). Amend 4e7c055 for branch. 2025-12-21 18:06:51 +01:00
ocornut
26f7b2f5aa Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
2025-12-21 18:05:20 +01:00
ocornut
4e7c05504a Renamed IM_ARRAYSIZE() -> IM_COUNTOF(). Kept legacy name for now. 2025-12-17 14:30:01 +01:00
ocornut
9ca7ea00c8 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_glfw.h
#	backends/imgui_impl_opengl3.cpp
#	imgui.cpp
2025-12-11 23:25:47 +01:00
ocornut
a07b2828ce Backends: GLFW: add IMGUI_IMPL_GLFW_DISABLE_X11 / IMGUI_IMPL_GLFW_DISABLE_WAYLAND. (#9109, #9116)
cc #8884, #8474, #8289
2025-12-10 18:57:02 +01:00
ocornut
9a4fd69f6d Backends: GLFW: avoid repeated glfwSetCursor()/glfwSetInputMode() calls when unnecessary. 2025-12-10 18:35:22 +01:00
ocornut
5e462eb29b Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
2025-11-18 19:20:08 +01:00
ocornut
6ae32c696a Backends: fixed misc zealous Clang warnings. 2025-11-18 16:34:35 +01:00
ocornut
219ba3b617 Merge branch 'master' into docking
# Conflicts:
#	imgui.cpp
#	imgui_demo.cpp
#	imgui_internal.h
2025-11-17 15:38:58 +01:00
ocornut
9e15ebb402 Backends: GLFW: fixed last ImGui_ImplGlfw_Shutdown() call not immediately clearing the context map. (#9075, #8676, #8239, #8069)
Amend/fix f633a6058
2025-11-17 13:38:17 +01:00
ocornut
3109131a88 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_glfw.h
#	imgui.cpp
#	imgui_internal.h
2025-11-06 18:11:16 +01:00
Clownacy
59db6ceeb1 Backends: GLFW: lower minimum requirement from GLFW 3.1 to GLFW 3.0. (#9055) 2025-11-06 15:25:11 +01:00
ocornut
95e047244e Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_sdl3.cpp
#	examples/example_sdl3_vulkan/main.cpp
2025-10-23 21:05:22 +02:00
ocornut
b46f099a3f Backends: GLFW: fixed building on Linux platforms where Wayland headers are not available. (#9024, #8969, #8921, #8920) 2025-10-20 23:57:09 +02:00
ocornut
a0a6639fb5 Viewports: rename ImGuiBackendFlags_HasParentViewportId->ImGuiBackendFlags_HasParentViewport. (#8948)
Introduced yesterday by 50a8bb2.
2025-10-02 16:20:24 +02:00
ocornut
50a8bb2711 Viewports: added ImGuiBackendFlags_HasParentViewportId backend flag. (#8948) 2025-09-30 17:38:06 +02:00
ocornut
1aa91ac426 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx12.cpp
2025-09-29 16:16:16 +02:00
ocornut
e459e5bf0a Backends: GLFW: fixed build on platform that are neither Windows, macOS or known Unixes. (#8969, #8920, #8921)
Fix 10d0162.

x
2025-09-29 16:12:33 +02:00
ocornut
e285ecca09 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx11.cpp
#	backends/imgui_impl_dx12.cpp
#	backends/imgui_impl_dx9.cpp
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_metal.mm
#	backends/imgui_impl_opengl2.cpp
#	backends/imgui_impl_opengl3.cpp
#	backends/imgui_impl_osx.mm
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_sdlgpu3.cpp
#	backends/imgui_impl_vulkan.cpp
#	backends/imgui_impl_win32.cpp
#	docs/CHANGELOG.txt
#	imgui.cpp
#	imgui.h
2025-09-24 14:54:46 +02:00
ocornut
a1c0836bec Viewports: changed default value of io.ConfigViewportsNoDefaultParent to true. (#8948, #3152, #2871) 2025-09-22 15:56:10 +02:00
ocornut
aa9476a38a IO: added ImGuiPlatformIO::ClearPlatformHandlers(), ClearRendererHandlers(). Backends: call those on Shutdown(). (#8945, #2769)
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx11.cpp
#	backends/imgui_impl_dx12.cpp
#	backends/imgui_impl_dx9.cpp
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_metal.mm
#	backends/imgui_impl_opengl2.cpp
#	backends/imgui_impl_opengl3.cpp
#	backends/imgui_impl_osx.mm
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_sdlgpu3.cpp
#	backends/imgui_impl_vulkan.cpp
#	backends/imgui_impl_win32.cpp
#	docs/CHANGELOG.txt
#	imgui.h
2025-09-18 17:02:44 +02:00
ocornut
d4f722d5b2 IO: added ImGuiPlatformIO::ClearPlatformHandlers(), ClearRendererHandlers(). Backends: call those on Shutdown(). (#8945, #2769) 2025-09-18 16:58:50 +02:00
ocornut
34bff4672c Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	docs/CHANGELOG.txt
#	examples/example_glfw_metal/main.mm
#	examples/example_glfw_opengl2/main.cpp
#	examples/example_glfw_vulkan/main.cpp
#	examples/example_win32_opengl3/main.cpp
#	examples/example_win32_vulkan/main.cpp
#	imgui.h
2025-09-17 18:48:39 +02:00
ocornut
6274ca4266 Backends: GLFW: fixed build for Emscripten which doesn't expose glfw3native.h.
Amend 10d0162
2025-09-15 19:28:01 +02:00
ocornut
d92c8c6aff Backends: SDL2: Content Scales are always reported as 1.0 on Wayland. (#8921)
SDL_GetDisplayDPI() seems generally broken on X11/Wayland, but our logs shows that on Wayland we get both a content scale from SDL_GetDisplayDPI() and a framebuffer scale.
2025-09-15 19:20:56 +02:00
ocornut
72c00f39c1 Backends: GLFW: fix ImGui_ImplGlfw_IsWayland() amend broken 10d0162. (#8921, #8920)
Accidentally broke this while shuffling code...
2025-09-15 19:16:05 +02:00
ocornut
2675b7ca26 Backends: GLFW: Content Scales always reported as 1.0 on Wayland, FramebufferScale always reported as 1.0 on X11. (#8920, #8921) 2025-09-15 18:55:09 +02:00
ocornut
10d0162378 Backends: GLFW: added ImGui_ImplGlfw_IsWayland(). (#8921, #8920)
(technically presently untested but we've researched this)
2025-09-15 18:40:22 +02:00
ocornut
a4cd45f44c Backends: GLFW: fixed imgui_impl_glfw.cpp being affected by X headers '#define Status' leak since 6b2cdf2. (#8884) 2025-09-12 19:51:31 +02:00
ocornut
37b18acdf5 Backends: GLFW: improve multi-viewport behavior in tiling WMs (X11). Amends. (#8884, #8474, #8289) 2025-09-10 20:28:30 +02:00
ikos3k
6b2cdf29bc Backends: GLFW: improve multi-viewport behavior in tiling WMs (X11) (#8884, #8474, #8289)
- Implement _NET_WM_WINDOW_TYPE_DIALOG for viewports
- Fix override_redirect for proper WM control
- Tested on i3wm and xfce4
2025-09-10 20:04:04 +02:00
ocornut
ab760992ad Merge branch 'master' into docking 2025-09-08 13:35:24 +02:00