|
 |
91334d |
From 1e5e0f3ff363bdd0ed2d2e86113b42d6708f9be8 Mon Sep 17 00:00:00 2001
|
|
 |
91334d |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
 |
91334d |
Date: Tue, 7 Nov 2017 13:26:27 +0000
|
|
 |
91334d |
Subject: [PATCH] Resolves: rhbz#1505379 gtk3+X: open comboboxes block session
|
|
 |
91334d |
|
|
 |
91334d |
if there's none of our windows under the mouse when clicked then close the
|
|
 |
91334d |
popup window.
|
|
 |
91334d |
|
|
 |
91334d |
There's similar code for gtk2, but using deprecated apis, do this again but
|
|
 |
91334d |
with the recommended apis
|
|
 |
91334d |
|
|
 |
91334d |
Change-Id: I9d844d098d09d0109dcbbc06390562e83edda397
|
|
 |
91334d |
---
|
|
 |
91334d |
vcl/unx/gtk3/gtk3gtkframe.cxx | 16 +++++++++++-----
|
|
 |
91334d |
1 file changed, 11 insertions(+), 5 deletions(-)
|
|
 |
91334d |
|
|
 |
91334d |
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
|
|
 |
91334d |
index 1535f11..3b539a7 100644
|
|
 |
91334d |
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
|
|
 |
91334d |
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
|
|
 |
91334d |
@@ -2608,12 +2608,18 @@ gboolean GtkSalFrame::signalButton( GtkWidget*, GdkEventButton* pEvent, gpointer
|
|
 |
91334d |
|
|
 |
91334d |
vcl::DeletionListener aDel( pThis );
|
|
 |
91334d |
|
|
 |
91334d |
- if (pThis->isFloatGrabWindow() && pEvent->window != widget_get_window(pThis->getMouseEventWidget()))
|
|
 |
91334d |
+ if (pThis->isFloatGrabWindow())
|
|
 |
91334d |
{
|
|
 |
91334d |
- if (pEvent->type == GDK_BUTTON_PRESS)
|
|
 |
91334d |
- pThis->closePopup();
|
|
 |
91334d |
- else if (pEvent->type == GDK_BUTTON_RELEASE)
|
|
 |
91334d |
- return true;
|
|
 |
91334d |
+ //rhbz#1505379 if the window that got the event isn't our one, or there's none
|
|
 |
91334d |
+ //of our windows under the mouse then close this popup window
|
|
 |
91334d |
+ if (pEvent->window != widget_get_window(pThis->getMouseEventWidget()) ||
|
|
 |
91334d |
+ gdk_device_get_window_at_position(pEvent->device, nullptr, nullptr) == nullptr)
|
|
 |
91334d |
+ {
|
|
 |
91334d |
+ if (pEvent->type == GDK_BUTTON_PRESS)
|
|
 |
91334d |
+ pThis->closePopup();
|
|
 |
91334d |
+ else if (pEvent->type == GDK_BUTTON_RELEASE)
|
|
 |
91334d |
+ return true;
|
|
 |
91334d |
+ }
|
|
 |
91334d |
}
|
|
 |
91334d |
|
|
 |
91334d |
if (!aDel.isDeleted())
|
|
 |
91334d |
--
|
|
 |
91334d |
2.9.5
|
|
 |
91334d |
|