Skip to content

Commit b1fc988

Browse files
committed
imgui_impl_glfw, imgui_impl_sdl: Workaround for Emscripten which doesn't seem to handle focus related calls. (#1941)
1 parent b217251 commit b1fc988

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

examples/imgui_impl_glfw.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
// CHANGELOG
1616
// (minor and older changes stripped away, please see git history for details)
17+
// 2018-08-01: Inputs: Workaround for Emscripten which doesn't seem to handle focus related calls.
1718
// 2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor.
1819
// 2018-06-08: Misc: Extracted imgui_impl_glfw.cpp/.h away from the old combined GLFW+OpenGL/Vulkan examples.
1920
// 2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors flag + honor ImGuiConfigFlags_NoMouseCursorChange flag.
@@ -199,7 +200,12 @@ static void ImGui_ImplGlfw_UpdateMousePosAndButtons()
199200
// Update mouse position
200201
const ImVec2 mouse_pos_backup = io.MousePos;
201202
io.MousePos = ImVec2(-FLT_MAX, -FLT_MAX);
202-
if (glfwGetWindowAttrib(g_Window, GLFW_FOCUSED))
203+
#ifdef __EMSCRIPTEN__
204+
const bool focused = true; // Emscripten
205+
#else
206+
const bool focused = glfwGetWindowAttrib(g_Window, GLFW_FOCUSED) != 0;
207+
#endif
208+
if (focused)
203209
{
204210
if (io.WantSetMousePos)
205211
{

examples/imgui_impl_sdl.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
// CHANGELOG
1717
// (minor and older changes stripped away, please see git history for details)
18+
// 2018-08-01: Inputs: Workaround for Emscripten which doesn't seem to handle focus related calls.
1819
// 2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor.
1920
// 2018-06-08: Misc: Extracted imgui_impl_sdl.cpp/.h away from the old combined SDL2+OpenGL/Vulkan examples.
2021
// 2018-06-08: Misc: ImGui_ImplSDL2_InitForOpenGL() now takes a SDL_GLContext parameter.
@@ -214,7 +215,7 @@ static void ImGui_ImplSDL2_UpdateMousePosAndButtons()
214215
io.MouseDown[2] = g_MousePressed[2] || (mouse_buttons & SDL_BUTTON(SDL_BUTTON_MIDDLE)) != 0;
215216
g_MousePressed[0] = g_MousePressed[1] = g_MousePressed[2] = false;
216217

217-
#if SDL_HAS_CAPTURE_MOUSE
218+
#if SDL_HAS_CAPTURE_MOUSE && !defined(__EMSCRIPTEN__)
218219
SDL_Window* focused_window = SDL_GetKeyboardFocus();
219220
if (g_Window == focused_window)
220221
{

0 commit comments

Comments
 (0)