diff --git a/src/loader.cpp b/src/loader.cpp index 7c0d93c..fe11a2a 100644 --- a/src/loader.cpp +++ b/src/loader.cpp @@ -175,6 +175,7 @@ namespace game ImGuiIO& io = ImGui::GetIO(); io.IniFilename = nullptr; + io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange; ImGui::StyleColorsDark(); diff --git a/src/state.cpp b/src/state.cpp index b68c5d4..07cf37d 100644 --- a/src/state.cpp +++ b/src/state.cpp @@ -90,6 +90,16 @@ namespace game default: break; } + + auto isHideCursor = type == MAIN; + if (isHideCursor != isCursorHidden) + { + if (isHideCursor) + SDL_HideCursor(); + else + SDL_ShowCursor(); + isCursorHidden = isHideCursor; + } } void State::render() diff --git a/src/state.hpp b/src/state.hpp index 5d3be0c..e01400a 100644 --- a/src/state.hpp +++ b/src/state.hpp @@ -39,6 +39,7 @@ namespace game void render(); bool isRunning{true}; + bool isCursorHidden{}; Canvas canvas{}; diff --git a/src/state/main.cpp b/src/state/main.cpp index daa5dc2..7de551d 100644 --- a/src/state/main.cpp +++ b/src/state/main.cpp @@ -256,7 +256,6 @@ namespace game::state cursor.render(textureShader, rectShader, canvas); canvas.unbind(); - SDL_HideCursor(); } void Main::save(Resources& resources)