diff --git a/src/single_window/control_window.cpp b/src/single_window/control_window.cpp index 9c4208b..c7a0a6e 100644 --- a/src/single_window/control_window.cpp +++ b/src/single_window/control_window.cpp @@ -96,11 +96,8 @@ int Render::ControlWindow() { new_cursor_pos_y = new_control_window_pos_y + mouse_diff_control_bar_pos_y_; - if (new_cursor_pos_x < stream_window_width_ && - new_cursor_pos_y < stream_window_height_) { - SDL_WarpMouseInWindow(stream_window_, (int)new_cursor_pos_x, - (int)new_cursor_pos_y); - } + SDL_WarpMouseInWindow(stream_window_, (int)new_cursor_pos_x, + (int)new_cursor_pos_y); } reset_control_bar_pos_ = false; } else if (!reset_control_bar_pos_ && diff --git a/src/single_window/render.cpp b/src/single_window/render.cpp index 9c448aa..b2fac8d 100644 --- a/src/single_window/render.cpp +++ b/src/single_window/render.cpp @@ -908,6 +908,12 @@ int Render::Run() { } else if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED && stream_window_created_ && event.window.windowID == SDL_GetWindowID(stream_window_)) { + // to prevent cursor relocation + if (!reset_control_bar_pos_) { + mouse_diff_control_bar_pos_x_ = 0; + mouse_diff_control_bar_pos_y_ = 0; + } + reset_control_bar_pos_ = true; int stream_window_width, stream_window_height; SDL_GetWindowSize(stream_window_, &stream_window_width,