@ -166,7 +166,7 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw
io . BackendFlags | = ImGuiBackendFlags_HasMouseCursors ; // We can honor GetMouseCursor() values (optional)
io . BackendFlags | = ImGuiBackendFlags_HasSetMousePos ; // We can honor io.WantSetMousePos requests (optional, rarely used)
io . BackendFlags | = ImGuiBackendFlags_PlatformHasViewports ; // We can create multi-viewports on the Platform side (optional)
# if GLFW_HAS_ GLF W_HOVERED && defined(_WIN32)
# if GLFW_HAS_ WINDO W_HOVERED && defined(_WIN32)
io . BackendFlags | = ImGuiBackendFlags_HasMouseHoveredViewport ; // We can set io.MouseHoveredViewport correctly (optional, not easy)
# endif
io . BackendPlatformName = " imgui_impl_glfw " ;
@ -348,7 +348,7 @@ static void ImGui_ImplGlfw_UpdateMousePosAndButtons()
// rectangles and last focused time of every viewports it knows about. It will be unaware of other windows that may be sitting between or over your windows.
// [GLFW] FIXME: This is currently only correct on Win32. See what we do below with the WM_NCHITTEST, missing an equivalent for other systems.
// See https://github.com/glfw/glfw/issues/1236 if you want to help in making this a GLFW feature.
# if GLFW_HAS_ GLF W_HOVERED && defined(_WIN32)
# if GLFW_HAS_ WINDO W_HOVERED && defined(_WIN32)
if ( glfwGetWindowAttrib ( window , GLFW_HOVERED ) & & ! ( viewport - > Flags & ImGuiViewportFlags_NoInputs ) )
io . MouseHoveredViewport = viewport - > ID ;
# endif
@ -586,7 +586,7 @@ static void ImGui_ImplGlfw_DestroyWindow(ImGuiViewport* viewport)
{
if ( data - > WindowOwned )
{
# if GLFW_HAS_ GLF W_HOVERED && defined(_WIN32)
# if GLFW_HAS_ WINDO W_HOVERED && defined(_WIN32)
HWND hwnd = ( HWND ) viewport - > PlatformHandleRaw ;
: : RemovePropA ( hwnd , " IMGUI_VIEWPORT " ) ;
# endif
@ -600,7 +600,7 @@ static void ImGui_ImplGlfw_DestroyWindow(ImGuiViewport* viewport)
// We have submitted https://github.com/glfw/glfw/pull/1568 to allow GLFW to support "transparent inputs".
// In the meanwhile we implement custom per-platform workarounds here (FIXME-VIEWPORT: Implement same work-around for Linux/OSX!)
# if defined(_WIN32) && GLFW_HAS_GLFW_HOVERED
# if GLFW_HAS_WINDOW_HOVERED && defined(_WIN32)
static WNDPROC g_GlfwWndProc = NULL ;
static LRESULT CALLBACK WndProcNoInputs ( HWND hWnd , UINT msg , WPARAM wParam , LPARAM lParam )
{
@ -634,7 +634,7 @@ static void ImGui_ImplGlfw_ShowWindow(ImGuiViewport* viewport)
}
// GLFW hack: install hook for WM_NCHITTEST message handler
# if GLFW_HAS_ GLF W_HOVERED && defined(_WIN32)
# if GLFW_HAS_ WINDO W_HOVERED && defined(_WIN32)
: : SetPropA ( hwnd , " IMGUI_VIEWPORT " , viewport ) ;
if ( g_GlfwWndProc = = NULL )
g_GlfwWndProc = ( WNDPROC ) : : GetWindowLongPtr ( hwnd , GWLP_WNDPROC ) ;