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_ImplSDL2_NewFrame();
|
||||||
ImGui::NewFrame();
|
ImGui::NewFrame();
|
||||||
|
|
||||||
if (connection_established_ && !menu_hovered_) {
|
if (connection_established_ && !subwindow_hovered_) {
|
||||||
ImGui::SetMouseCursor(ImGuiMouseCursor_None);
|
ImGui::SetMouseCursor(ImGuiMouseCursor_None);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,7 +374,7 @@ int MainWindow::Run() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
menu_hovered_ = ImGui::IsWindowHovered();
|
subwindow_hovered_ = ImGui::IsWindowHovered();
|
||||||
|
|
||||||
// local
|
// local
|
||||||
{
|
{
|
||||||
@@ -569,6 +569,7 @@ int MainWindow::Run() {
|
|||||||
settings_window_pos_reset_ = false;
|
settings_window_pos_reset_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Settings
|
||||||
ImGui::Begin(
|
ImGui::Begin(
|
||||||
localization::settings[localization_language_index_].c_str(),
|
localization::settings[localization_language_index_].c_str(),
|
||||||
nullptr,
|
nullptr,
|
||||||
@@ -576,6 +577,8 @@ int MainWindow::Run() {
|
|||||||
ImGuiWindowFlags_NoSavedSettings);
|
ImGuiWindowFlags_NoSavedSettings);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
subwindow_hovered_ = ImGui::IsWindowHovered();
|
||||||
|
|
||||||
const char *language_items[] = {
|
const char *language_items[] = {
|
||||||
localization::language_zh[localization_language_index_].c_str(),
|
localization::language_zh[localization_language_index_].c_str(),
|
||||||
localization::language_en[localization_language_index_].c_str()};
|
localization::language_en[localization_language_index_].c_str()};
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ class MainWindow {
|
|||||||
|
|
||||||
bool exit_ = false;
|
bool exit_ = false;
|
||||||
bool connection_established_ = false;
|
bool connection_established_ = false;
|
||||||
bool menu_hovered_ = false;
|
bool subwindow_hovered_ = false;
|
||||||
bool connect_button_pressed_ = false;
|
bool connect_button_pressed_ = false;
|
||||||
bool fullscreen_button_pressed_ = false;
|
bool fullscreen_button_pressed_ = false;
|
||||||
bool settings_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) {
|
} else if (SDL_BUTTON_RIGHT == ev.button.button) {
|
||||||
remote_action.m.flag = MouseFlag::right_down;
|
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,
|
SendData(peer_, DATA_TYPE::DATA, (const char *)&remote_action,
|
||||||
sizeof(remote_action));
|
sizeof(remote_action));
|
||||||
} else if (SDL_MOUSEBUTTONUP == ev.type) {
|
} else if (SDL_MOUSEBUTTONUP == ev.type) {
|
||||||
@@ -49,6 +52,9 @@ int MainWindow::ProcessMouseKeyEven(SDL_Event &ev) {
|
|||||||
} else if (SDL_BUTTON_RIGHT == ev.button.button) {
|
} else if (SDL_BUTTON_RIGHT == ev.button.button) {
|
||||||
remote_action.m.flag = MouseFlag::right_up;
|
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,
|
SendData(peer_, DATA_TYPE::DATA, (const char *)&remote_action,
|
||||||
sizeof(remote_action));
|
sizeof(remote_action));
|
||||||
} else if (SDL_MOUSEMOTION == ev.type) {
|
} else if (SDL_MOUSEMOTION == ev.type) {
|
||||||
|
|||||||
Reference in New Issue
Block a user