summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-12-18 14:19:03 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-12-19 16:53:35 +0100
commitb37540b1b3d387668c7b9f89eb54f8c5c60c1152 (patch)
treef88a8e2af207c8b381a4e71f4aeda19b775d738e /vcl
parenta3f2c64d5ec9d1ea34ec04ebc9e00ef67651a190 (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.cxx8
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)