diff --git a/main/gui/source/window/linux_window.cpp b/main/gui/source/window/linux_window.cpp index aabbbf8dc..be95f0f2f 100644 --- a/main/gui/source/window/linux_window.cpp +++ b/main/gui/source/window/linux_window.cpp @@ -135,6 +135,11 @@ namespace hex { } }); + glfwSetWindowRefreshCallback(m_window, [](GLFWwindow *window) { + auto win = static_cast(glfwGetWindowUserPointer(window)); + win->fullFrame(); + }); + if (themeFollowSystem) EventOSThemeChanged::post(); } diff --git a/main/gui/source/window/macos_window.cpp b/main/gui/source/window/macos_window.cpp index 5f57df817..4f52efbdf 100644 --- a/main/gui/source/window/macos_window.cpp +++ b/main/gui/source/window/macos_window.cpp @@ -91,6 +91,11 @@ namespace hex { }); setupMacosWindowStyle(m_window, ImHexApi::System::isBorderlessWindowModeEnabled()); + + glfwSetWindowRefreshCallback(m_window, [](GLFWwindow *window) { + auto win = static_cast(glfwGetWindowUserPointer(window)); + win->fullFrame(); + }); } void Window::beginNativeWindowFrame() { diff --git a/main/gui/source/window/web_window.cpp b/main/gui/source/window/web_window.cpp index 45fb0d9f1..2dfa36ab3 100644 --- a/main/gui/source/window/web_window.cpp +++ b/main/gui/source/window/web_window.cpp @@ -85,6 +85,11 @@ namespace hex { } }); + glfwSetWindowRefreshCallback(m_window, [](GLFWwindow *window) { + auto win = static_cast(glfwGetWindowUserPointer(window)); + win->fullFrame(); + }); + if (themeFollowSystem) EventOSThemeChanged::post(); } diff --git a/main/gui/source/window/win_window.cpp b/main/gui/source/window/win_window.cpp index 8d63da250..c9e1cf379 100644 --- a/main/gui/source/window/win_window.cpp +++ b/main/gui/source/window/win_window.cpp @@ -560,8 +560,12 @@ namespace hex { glViewport(0, 0, width, height); ImHexApi::System::impl::setMainWindowSize(width, height); + }); + glfwSetWindowRefreshCallback(m_window, [](GLFWwindow *window) { + auto win = static_cast(glfwGetWindowUserPointer(window)); win->fullFrame(); + DwmFlush(); }); } @@ -581,8 +585,7 @@ namespace hex { } void Window::endNativeWindowFrame() { - if (!ImHexApi::System::isBorderlessWindowModeEnabled()) - return; + } } diff --git a/main/gui/source/window/window.cpp b/main/gui/source/window/window.cpp index ad6e58469..c93026f2a 100644 --- a/main/gui/source/window/window.cpp +++ b/main/gui/source/window/window.cpp @@ -817,8 +817,6 @@ namespace hex { auto win = static_cast(glfwGetWindowUserPointer(window)); win->m_unlockFrameRate = true; - - win->fullFrame(); }); // Register window resize callback @@ -837,17 +835,9 @@ namespace hex { ImGui::GetIO().MousePos = ImVec2(); } #else - win->fullFrame(); #endif }); - #if defined(OS_MACOS) - glfwSetWindowRefreshCallback(m_window, [](GLFWwindow *window) { - auto win = static_cast(glfwGetWindowUserPointer(window)); - win->fullFrame(); - }); - #endif - glfwSetCursorPosCallback(m_window, [](GLFWwindow *window, double, double) { auto win = static_cast(glfwGetWindowUserPointer(window)); win->m_unlockFrameRate = true;