[Libreoffice-commits] core.git: Branch 'libreoffice-7-0-1' - vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Thu Aug 27 14:39:13 UTC 2020
vcl/unx/gtk3/gtk3gtkframe.cxx | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
New commits:
commit dbbce6bf7f21fd8d72fa9b01a28a4ea0d7e2ccdc
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sun Aug 23 20:12:28 2020 +0100
Commit: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
CommitDate: Thu Aug 27 16:38:39 2020 +0200
tdf#135779 move focus back to usual parent before grabbing pointer
Change-Id: Ia4f1f2f1672a76515ab586d679a05467515868d6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101157
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index b4757b39023c..28a19033ea0d 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -1988,6 +1988,13 @@ void GtkSalFrame::SetPointer( PointerStyle ePointerStyle )
void GtkSalFrame::grabPointer( bool bGrab, bool bKeyboardAlso, bool bOwnerEvents )
{
+ if (bGrab)
+ {
+ // tdf#135779 move focus back inside usual input window out of any
+ // other gtk widgets before grabbing the pointer
+ GrabFocus();
+ }
+
static const char* pEnv = getenv( "SAL_NO_MOUSEGRABS" );
if (pEnv && *pEnv)
return;
@@ -2524,8 +2531,10 @@ void GtkSalFrame::GrabFocus()
pGrabWidget = GTK_WIDGET(m_pWindow);
else
pGrabWidget = GTK_WIDGET(m_pFixedContainer);
- gtk_widget_set_can_focus(pGrabWidget, true);
- gtk_widget_grab_focus(pGrabWidget);
+ if (!gtk_widget_get_can_focus(pGrabWidget))
+ gtk_widget_set_can_focus(pGrabWidget, true);
+ if (!gtk_widget_has_focus(pGrabWidget))
+ gtk_widget_grab_focus(pGrabWidget);
}
gboolean GtkSalFrame::signalButton(GtkWidget*, GdkEventButton* pEvent, gpointer frame)
More information about the Libreoffice-commits
mailing list