From 8fb4b5998ec23f5041d8d9b7d275e4976c1f53a9 Mon Sep 17 00:00:00 2001
From: Markus Sauermann <6299227+Sauermann@users.noreply.github.com>
Date: Mon, 24 Oct 2022 01:47:48 +0200
Subject: [PATCH] Fix unwanted popup closing by mouse-move while holding
 mouse-button

---
 platform/linuxbsd/x11/display_server_x11.cpp | 3 +--
 platform/linuxbsd/x11/display_server_x11.h   | 1 -
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp
index 88c6500e105..7fd0eb7d0c7 100644
--- a/platform/linuxbsd/x11/display_server_x11.cpp
+++ b/platform/linuxbsd/x11/display_server_x11.cpp
@@ -3414,7 +3414,7 @@ bool DisplayServerX11::mouse_process_popups() {
 			XWindowAttributes root_attrs;
 			XGetWindowAttributes(x11_display, root, &root_attrs);
 			Vector2i pos = Vector2i(root_attrs.x + root_x, root_attrs.y + root_y);
-			if ((pos != last_mouse_monitor_pos) || (mask != last_mouse_monitor_mask)) {
+			if (mask != last_mouse_monitor_mask) {
 				if (((mask & Button1Mask) || (mask & Button2Mask) || (mask & Button3Mask) || (mask & Button4Mask) || (mask & Button5Mask))) {
 					List<WindowID>::Element *C = nullptr;
 					List<WindowID>::Element *E = popup_list.back();
@@ -3440,7 +3440,6 @@ bool DisplayServerX11::mouse_process_popups() {
 				}
 			}
 			last_mouse_monitor_mask = mask;
-			last_mouse_monitor_pos = pos;
 		}
 	}
 	return closed;
diff --git a/platform/linuxbsd/x11/display_server_x11.h b/platform/linuxbsd/x11/display_server_x11.h
index 861eced88ba..4be8c3a5345 100644
--- a/platform/linuxbsd/x11/display_server_x11.h
+++ b/platform/linuxbsd/x11/display_server_x11.h
@@ -169,7 +169,6 @@ class DisplayServerX11 : public DisplayServer {
 	HashMap<WindowID, WindowData> windows;
 
 	unsigned int last_mouse_monitor_mask = 0;
-	Vector2i last_mouse_monitor_pos;
 	uint64_t time_since_popup = 0;
 
 	List<WindowID> popup_list;