From cf7ef89bf26a75c33a2fa8ca674d50cb43a2aac6 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Thu, 21 Nov 2024 10:34:04 +0800 Subject: [PATCH] [fix] fix cursor position when stream window initialization --- src/single_window/control_window.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/single_window/control_window.cpp b/src/single_window/control_window.cpp index f4beb2d..4851788 100644 --- a/src/single_window/control_window.cpp +++ b/src/single_window/control_window.cpp @@ -41,7 +41,10 @@ int Render::ControlWindow() { ImGui::SetNextWindowSize( ImVec2(control_window_width_, control_window_height_), ImGuiCond_Always); - ImGui::SetNextWindowPos(ImVec2(0, title_bar_height_ + 1), ImGuiCond_Once); + + if (0 == control_winodw_pos_.x && 0 == control_winodw_pos_.y) { + ImGui::SetNextWindowPos(ImVec2(0, title_bar_height_ + 1), ImGuiCond_Once); + } if (reset_control_bar_pos_) { int new_control_window_pos_x, new_control_window_pos_y, new_cursor_pos_x, @@ -88,7 +91,11 @@ int Render::ControlWindow() { ImGui::SetNextWindowPos( ImVec2(new_control_window_pos_x, new_control_window_pos_y), ImGuiCond_Always); - SDL_WarpMouseInWindow(stream_window_, new_cursor_pos_x, new_cursor_pos_y); + + if (0 != mouse_diff_control_bar_pos_x_ && + 0 != mouse_diff_control_bar_pos_y_) { + SDL_WarpMouseInWindow(stream_window_, new_cursor_pos_x, new_cursor_pos_y); + } reset_control_bar_pos_ = false; } else if (!reset_control_bar_pos_ && ImGui::IsMouseReleased(ImGuiPopupFlags_MouseButtonLeft) ||