summaryrefslogtreecommitdiff
path: root/svtools/source/control/tabbar.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/control/tabbar.cxx')
-rw-r--r--svtools/source/control/tabbar.cxx13
1 files changed, 10 insertions, 3 deletions
diff --git a/svtools/source/control/tabbar.cxx b/svtools/source/control/tabbar.cxx
index e41696c0b56d..986041525ade 100644
--- a/svtools/source/control/tabbar.cxx
+++ b/svtools/source/control/tabbar.cxx
@@ -457,8 +457,9 @@ IMPL_LINK( TabBarEdit, ImplEndEditHdl, void*, pCancel, void )
ResetPostEvent();
maLoseFocusIdle.Stop();
- // do it idle in case we quickly regain focus
- if (!m_xEntry->has_focus())
+ // We need this query, because the edit gets a losefocus event,
+ // when it shows the context menu or the insert symbol dialog
+ if (!m_xEntry->has_focus() && m_xEntry->has_child_focus())
maLoseFocusIdle.Start();
else
GetParent()->EndEditMode( pCancel != nullptr );
@@ -468,7 +469,13 @@ IMPL_LINK_NOARG(TabBarEdit, ImplEndTimerHdl, Timer *, void)
{
if (m_xEntry->has_focus())
return;
- GetParent()->EndEditMode( true );
+
+ // We need this query, because the edit gets a losefocus event,
+ // when it shows the context menu or the insert symbol dialog
+ if (m_xEntry->has_child_focus())
+ maLoseFocusIdle.Start();
+ else
+ GetParent()->EndEditMode( true );
}
struct TabBar_Impl