diff --git a/vendor/imgui/backends/imgui_impl_glfw.cpp b/vendor/imgui/backends/imgui_impl_glfw.cpp
index 971686b09012ca0ba395ed5c7aeadc1837c5b343..868625833f237d6d33259e0bcf633efd5dd64720 100644
--- a/vendor/imgui/backends/imgui_impl_glfw.cpp
+++ b/vendor/imgui/backends/imgui_impl_glfw.cpp
@@ -109,10 +109,10 @@ void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window, double xoffset, double yo
 
 void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods)
 {
-    if (g_PrevUserCallbackKey != NULL)
+    ImGuiIO& io = ImGui::GetIO();
+    if (g_PrevUserCallbackKey != NULL && !io.WantCaptureKeyboard)
         g_PrevUserCallbackKey(window, key, scancode, action, mods);
 
-    ImGuiIO& io = ImGui::GetIO();
     if (key >= 0 && key < IM_ARRAYSIZE(io.KeysDown))
     {
         if (action == GLFW_PRESS)