summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-04-22 17:26:31 +0100
committerAndras Timar <andras.timar@collabora.com>2021-08-16 10:14:29 +0200
commite0155f6bb6c209593bea73c87076715b7599fcbc (patch)
tree59b063557fda869bfb52c83d172ecc4a9b9bbc80 /include
parentd8bc16bd5119a9921955b530442f7aed1eff900b (diff)
undo blocking emitting focus events during grab_focus
revert... commit f97dbac73fe149e8fed0932890d0c1d6be4869a3 Author: Caolán McNamara <caolanm@redhat.com> Date: Wed Jun 26 21:00:02 2019 +0100 infinite focus changing in toc biblio page which blocked calling focus-changed callbacks when grab_focus is called explicitly analogous to how we block value-changed callbacks setting values through code but don't block them when the value is changed by user interaction. In retrospect that was a poor choice, so revert that and subsequent workarounds in favour of just not calling gtk_grab_focus if the widget already has focus. checked: a) tdf#138427 focus set to wrong input box b) tdf#138078 only call GetFocus if we gained focus from an unfocused state c) tdf#137993 ensure the toplevel vcl::Window is activated d) tdf#136941 call focus in handler explicitly Change-Id: I411480e2d627aa9995fb41b0aa17e9fb6d34d73f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114524 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit db1cf111666847ce5ce93d18ae5ae8c29a4c44d6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120079 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/formula/funcutl.hxx5
-rw-r--r--include/vcl/customweld.hxx9
2 files changed, 5 insertions, 9 deletions
diff --git a/include/formula/funcutl.hxx b/include/formula/funcutl.hxx
index 4e008181eae7..4ed4b407c480 100644
--- a/include/formula/funcutl.hxx
+++ b/include/formula/funcutl.hxx
@@ -93,7 +93,10 @@ public:
Modify(*xEntry);
}
- void GrabFocus();
+ void GrabFocus()
+ {
+ xEntry->grab_focus();
+ }
void SelectAll()
{
diff --git a/include/vcl/customweld.hxx b/include/vcl/customweld.hxx
index b19b64bf980e..64f980732dfb 100644
--- a/include/vcl/customweld.hxx
+++ b/include/vcl/customweld.hxx
@@ -63,14 +63,7 @@ public:
}
virtual void Show() { m_pDrawingArea->show(); }
virtual void Hide() { m_pDrawingArea->hide(); }
- void GrabFocus()
- {
- bool bHadFocus = m_pDrawingArea->has_focus();
- m_pDrawingArea->grab_focus();
- // tdf#138078 only call GetFocus if we gained focus from an unfocused state
- if (!bHadFocus && m_pDrawingArea->has_focus())
- GetFocus();
- }
+ void GrabFocus() { m_pDrawingArea->grab_focus(); }
bool HasFocus() const { return m_pDrawingArea->has_focus(); }
bool IsVisible() const { return m_pDrawingArea->get_visible(); }
bool IsReallyVisible() const { return m_pDrawingArea->is_visible(); }