vcl/source/app/salvtables.cxx |    3 ++-
 vcl/source/app/weldutils.cxx  |    2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 5a33b4df9201d5d04b923b8f67d50eec0f11fd2b
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Tue Feb 1 20:13:49 2022 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Thu Feb 3 10:09:46 2022 +0100

    Related: tdf#146997 no value-changed emitted for FormattedSpinButton
    
    under gtk. When the formatter sets a value during focus out then gtk
    won't emit a value-changed because it wasn't changed by gtk, move that
    emission to the formatter itself
    
    Change-Id: I6e2681b77d6effcd3abaa028e3e5383aa218863a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129306
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 61789796f473..6c7c08600f3a 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -5680,7 +5680,8 @@ IMPL_LINK_NOARG(SalInstanceFormattedSpinButton, 
UpDownHdl, SpinField&, void)
 
 IMPL_LINK_NOARG(SalInstanceFormattedSpinButton, LoseFocusHdl, Control&, void)
 {
-    signal_value_changed();
+    if (!m_pFormatter)
+        signal_value_changed();
     m_aLoseFocusHdl.Call(*this);
 }
 }
diff --git a/vcl/source/app/weldutils.cxx b/vcl/source/app/weldutils.cxx
index 32d457293829..f17aed238ae8 100644
--- a/vcl/source/app/weldutils.cxx
+++ b/vcl/source/app/weldutils.cxx
@@ -244,6 +244,8 @@ IMPL_LINK_NOARG(EntryFormatter, ModifyHdl, weld::Entry&, 
void)
 IMPL_LINK_NOARG(EntryFormatter, FocusOutHdl, weld::Widget&, void)
 {
     EntryLostFocus();
+    if (m_pSpinButton)
+        m_pSpinButton->signal_value_changed();
     m_aFocusOutHdl.Call(m_rEntry);
 }
 

Reply via email to