From 9cf5a88afdf76364f2af721fe00f3ed7669c3ce7 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sun, 27 Sep 2020 20:43:17 +0300 Subject: [PATCH] Support relative mouse mode --- libs/app/include/psemek/app/scene.hpp | 2 +- libs/app/source/app.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/app/include/psemek/app/scene.hpp b/libs/app/include/psemek/app/scene.hpp index 050e34e6..8fc601d0 100644 --- a/libs/app/include/psemek/app/scene.hpp +++ b/libs/app/include/psemek/app/scene.hpp @@ -16,7 +16,7 @@ namespace psemek::app virtual void on_focus_gained() {} virtual void on_focus_lost() {} - virtual void on_mouse_move(int /* x */, int /* y */) {} + virtual void on_mouse_move(int /* x */, int /* y */, int /* dx */, int /* dy */) {} virtual void on_mouse_wheel(int /* delta */) {} virtual void on_left_button_down() {} virtual void on_left_button_up() {} diff --git a/libs/app/source/app.cpp b/libs/app/source/app.cpp index de3508b1..c5499841 100644 --- a/libs/app/source/app.cpp +++ b/libs/app/source/app.cpp @@ -140,7 +140,7 @@ namespace psemek::app } break; case SDL_MOUSEMOTION: - handler->on_mouse_move(e.motion.x, e.motion.y); + handler->on_mouse_move(e.motion.x, e.motion.y, e.motion.xrel, e.motion.yrel); break; case SDL_MOUSEWHEEL: handler->on_mouse_wheel(e.wheel.y); @@ -229,6 +229,7 @@ namespace psemek::app void app::show_cursor(bool show) { SDL_ShowCursor(show ? SDL_TRUE : SDL_FALSE); + SDL_SetRelativeMouseMode(show ? SDL_FALSE : SDL_TRUE); } float app::time() const