From e935f2aacf544b1cfea3338489ed1d71b4b2787f Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Nov 07 2017 13:59:26 +0000 Subject: Resolves: rhbz#1505379 gtk3 + X open comboboxes block session --- diff --git a/0001-Resolves-rhbz-1505379-gtk3-X-open-comboboxes-block-s.patch b/0001-Resolves-rhbz-1505379-gtk3-X-open-comboboxes-block-s.patch new file mode 100644 index 0000000..a3e89bf --- /dev/null +++ b/0001-Resolves-rhbz-1505379-gtk3-X-open-comboboxes-block-s.patch @@ -0,0 +1,47 @@ +From 1e5e0f3ff363bdd0ed2d2e86113b42d6708f9be8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Tue, 7 Nov 2017 13:26:27 +0000 +Subject: [PATCH] Resolves: rhbz#1505379 gtk3+X: open comboboxes block session + +if there's none of our windows under the mouse when clicked then close the +popup window. + +There's similar code for gtk2, but using deprecated apis, do this again but +with the recommended apis + +Change-Id: I9d844d098d09d0109dcbbc06390562e83edda397 +--- + vcl/unx/gtk3/gtk3gtkframe.cxx | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx +index 1535f11..3b539a7 100644 +--- a/vcl/unx/gtk3/gtk3gtkframe.cxx ++++ b/vcl/unx/gtk3/gtk3gtkframe.cxx +@@ -2608,12 +2608,18 @@ gboolean GtkSalFrame::signalButton( GtkWidget*, GdkEventButton* pEvent, gpointer + + vcl::DeletionListener aDel( pThis ); + +- if (pThis->isFloatGrabWindow() && pEvent->window != widget_get_window(pThis->getMouseEventWidget())) ++ if (pThis->isFloatGrabWindow()) + { +- if (pEvent->type == GDK_BUTTON_PRESS) +- pThis->closePopup(); +- else if (pEvent->type == GDK_BUTTON_RELEASE) +- return true; ++ //rhbz#1505379 if the window that got the event isn't our one, or there's none ++ //of our windows under the mouse then close this popup window ++ if (pEvent->window != widget_get_window(pThis->getMouseEventWidget()) || ++ gdk_device_get_window_at_position(pEvent->device, nullptr, nullptr) == nullptr) ++ { ++ if (pEvent->type == GDK_BUTTON_PRESS) ++ pThis->closePopup(); ++ else if (pEvent->type == GDK_BUTTON_RELEASE) ++ return true; ++ } + } + + if (!aDel.isDeleted()) +-- +2.9.5 + diff --git a/libreoffice.spec b/libreoffice.spec index 0c4f419..86d9639 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -275,6 +275,7 @@ Patch32: 0001-Resolves-tdf-42873-videos-in-presenter-console-mispl.patch Patch33: 0001-Resolves-rhbz-1471983-fatal-exception-on-older-confi.patch Patch34: 0001-a11y-crash-in-use-after-dispose.patch Patch35: 0001-gtk3-fix-popover-placement-in-RTL.patch +Patch36: 0001-Resolves-rhbz-1505379-gtk3-X-open-comboboxes-block-s.patch %if 0%{?rhel} # not upstreamed @@ -2366,8 +2367,9 @@ done %{_includedir}/LibreOfficeKit %changelog -* Mon Nov 06 2017 Caolán McNamara - 1:5.3.7.2-2.UNBUILT +* Tue Nov 07 2017 Caolán McNamara - 1:5.3.7.2-2 - fix RTL popover placement under gtk3 +- Resolves: rhbz#1505379 gtk3 + X open comboboxes block session * Thu Oct 26 2017 David Tardon - 1:5.3.7.2-1 - update to 5.3.7 rc2