summaryrefslogtreecommitdiff
path: root/include/vcl/customweld.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/vcl/customweld.hxx')
-rw-r--r--include/vcl/customweld.hxx4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/vcl/customweld.hxx b/include/vcl/customweld.hxx
index df7b97e070d7..b19b64bf980e 100644
--- a/include/vcl/customweld.hxx
+++ b/include/vcl/customweld.hxx
@@ -65,8 +65,10 @@ public:
virtual void Hide() { m_pDrawingArea->hide(); }
void GrabFocus()
{
+ bool bHadFocus = m_pDrawingArea->has_focus();
m_pDrawingArea->grab_focus();
- if (m_pDrawingArea->has_focus())
+ // tdf#138078 only call GetFocus if we gained focus from an unfocused state
+ if (!bHadFocus && m_pDrawingArea->has_focus())
GetFocus();
}
bool HasFocus() const { return m_pDrawingArea->has_focus(); }