Skip to content

Commit 3ce0e49

Browse files
committed
Qt: Fix PopupClosePolicy::CloseOnClickOutside
1 parent 908580b commit 3ce0e49

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

internal/backends/qt/qt_window.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,10 @@ cpp! {{
160160
void *parent_of_popup_to_close = nullptr;
161161
if (auto p = dynamic_cast<const SlintWidget*>(parent())) {
162162
void *parent_window = p->rust_window;
163-
bool close_on_click = rust!(Slint_mouseReleaseEventPopup [parent_window: &QtWindow as "void*"] -> bool as "bool" {
163+
bool inside = rect().contains(event->pos());
164+
bool close_on_click = rust!(Slint_mouseReleaseEventPopup [parent_window: &QtWindow as "void*", inside: bool as "bool"] -> bool as "bool" {
164165
let close_policy = parent_window.close_policy();
165-
166-
close_policy == PopupClosePolicy::CloseOnClick || close_policy == PopupClosePolicy::CloseOnClickOutside
166+
close_policy == PopupClosePolicy::CloseOnClick || (close_policy == PopupClosePolicy::CloseOnClickOutside && !inside)
167167
});
168168
if (close_on_click) {
169169
parent_of_popup_to_close = parent_window;

0 commit comments

Comments
 (0)