diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-12-18 14:19:03 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-12-19 16:53:35 +0100 |
commit | b37540b1b3d387668c7b9f89eb54f8c5c60c1152 (patch) | |
tree | f88a8e2af207c8b381a4e71f4aeda19b775d738e /vcl | |
parent | a3f2c64d5ec9d1ea34ec04ebc9e00ef67651a190 (diff) |
remove can-focus when focus is lost
so main window is not a candidate to be tabbed into when focus is in sidebar
Change-Id: Ifca270e16bc3766cb12bda95f595887d5f01efe6
Reviewed-on: https://gerrit.libreoffice.org/85405
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkframe.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index 6001ac8db017..7a4f7a151a22 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -1929,6 +1929,7 @@ void GtkSalFrame::ToTop( SalFrameToTop nFlags ) { if( isChild( false ) ) { + gtk_widget_set_can_focus(GTK_WIDGET(m_pFixedContainer), true); gtk_widget_grab_focus(GTK_WIDGET(m_pFixedContainer)); } else if( IS_WIDGET_MAPPED( m_pWindow ) ) @@ -2494,7 +2495,10 @@ gboolean GtkSalFrame::signalButton(GtkWidget*, GdkEventButton* pEvent, gpointer // focus on click if (!bDifferentEventWindow) + { + gtk_widget_set_can_focus(GTK_WIDGET(pThis->m_pFixedContainer), true); gtk_widget_grab_focus(GTK_WIDGET(pThis->m_pFixedContainer)); + } } SalMouseEvent aEvent; @@ -3048,7 +3052,9 @@ void GtkSalFrame::signalSetFocus(GtkWindow*, GtkWidget* pWidget, gpointer frame) { // change of focus between native widgets within the toplevel GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame); - pThis->CallCallbackExc(pWidget == GTK_WIDGET(pThis->m_pFixedContainer) ? SalEvent::GetFocus : SalEvent::LoseFocus, nullptr); + bool bGainFocus = pWidget == GTK_WIDGET(pThis->m_pFixedContainer); + pThis->CallCallbackExc(bGainFocus ? SalEvent::GetFocus : SalEvent::LoseFocus, nullptr); + gtk_widget_set_can_focus(GTK_WIDGET(pThis->m_pFixedContainer), bGainFocus); } gboolean GtkSalFrame::signalMap(GtkWidget *, GdkEvent*, gpointer frame) |