|
@@ -3574,8 +3574,11 @@ void DisplayServerWindows::popup_open(WindowID p_window) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // Detect tooltips and other similar popups that shouldn't block input to their parent.
|
|
|
+ bool ignores_input = window_get_flag(WINDOW_FLAG_NO_FOCUS, p_window) && window_get_flag(WINDOW_FLAG_MOUSE_PASSTHROUGH, p_window);
|
|
|
+
|
|
|
WindowData &wd = windows[p_window];
|
|
|
- if (wd.is_popup || has_popup_ancestor) {
|
|
|
+ if (wd.is_popup || (has_popup_ancestor && !ignores_input)) {
|
|
|
// Find current popup parent, or root popup if new window is not transient.
|
|
|
List<WindowID>::Element *C = nullptr;
|
|
|
List<WindowID>::Element *E = popup_list.back();
|