mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
Do not send mouse click event when cursor hovers over subwindows
This commit is contained in:
@@ -347,7 +347,7 @@ int MainWindow::Run() {
|
||||
ImGui_ImplSDL2_NewFrame();
|
||||
ImGui::NewFrame();
|
||||
|
||||
if (connection_established_ && !menu_hovered_) {
|
||||
if (connection_established_ && !subwindow_hovered_) {
|
||||
ImGui::SetMouseCursor(ImGuiMouseCursor_None);
|
||||
}
|
||||
|
||||
@@ -374,7 +374,7 @@ int MainWindow::Run() {
|
||||
}
|
||||
|
||||
{
|
||||
menu_hovered_ = ImGui::IsWindowHovered();
|
||||
subwindow_hovered_ = ImGui::IsWindowHovered();
|
||||
|
||||
// local
|
||||
{
|
||||
@@ -569,6 +569,7 @@ int MainWindow::Run() {
|
||||
settings_window_pos_reset_ = false;
|
||||
}
|
||||
|
||||
// Settings
|
||||
ImGui::Begin(
|
||||
localization::settings[localization_language_index_].c_str(),
|
||||
nullptr,
|
||||
@@ -576,6 +577,8 @@ int MainWindow::Run() {
|
||||
ImGuiWindowFlags_NoSavedSettings);
|
||||
|
||||
{
|
||||
subwindow_hovered_ = ImGui::IsWindowHovered();
|
||||
|
||||
const char *language_items[] = {
|
||||
localization::language_zh[localization_language_index_].c_str(),
|
||||
localization::language_en[localization_language_index_].c_str()};
|
||||
|
||||
@@ -120,7 +120,7 @@ class MainWindow {
|
||||
|
||||
bool exit_ = false;
|
||||
bool connection_established_ = false;
|
||||
bool menu_hovered_ = false;
|
||||
bool subwindow_hovered_ = false;
|
||||
bool connect_button_pressed_ = false;
|
||||
bool fullscreen_button_pressed_ = false;
|
||||
bool settings_button_pressed_ = false;
|
||||
|
||||
@@ -40,6 +40,9 @@ int MainWindow::ProcessMouseKeyEven(SDL_Event &ev) {
|
||||
} else if (SDL_BUTTON_RIGHT == ev.button.button) {
|
||||
remote_action.m.flag = MouseFlag::right_down;
|
||||
}
|
||||
if (subwindow_hovered_) {
|
||||
remote_action.m.flag = MouseFlag::move;
|
||||
}
|
||||
SendData(peer_, DATA_TYPE::DATA, (const char *)&remote_action,
|
||||
sizeof(remote_action));
|
||||
} else if (SDL_MOUSEBUTTONUP == ev.type) {
|
||||
@@ -49,6 +52,9 @@ int MainWindow::ProcessMouseKeyEven(SDL_Event &ev) {
|
||||
} else if (SDL_BUTTON_RIGHT == ev.button.button) {
|
||||
remote_action.m.flag = MouseFlag::right_up;
|
||||
}
|
||||
if (subwindow_hovered_) {
|
||||
remote_action.m.flag = MouseFlag::move;
|
||||
}
|
||||
SendData(peer_, DATA_TYPE::DATA, (const char *)&remote_action,
|
||||
sizeof(remote_action));
|
||||
} else if (SDL_MOUSEMOTION == ev.type) {
|
||||
|
||||
Reference in New Issue
Block a user