weld::Scrollbar: Make clear that signal is about value change

A GtkAdjustment [1] doesn't only have a current value, but
also lower + upper bounds,...

Rename weld::Scrollbar::signal_adjustment_changed
to weld::Scrollbar::signal_adjustment_value_changed
etc. to make clearer that this signal is only emitted
when the current value changes, not any of the other
things an adjustment manages (and that can be set
via the weld::Scrollbar API, for example).

See how the GtkInstanceScrollbar ctor connects
the `signalAdjustValueChanged` callback to the
GtkAdjustment:value-changed signal [2], not the
GtkAdjustment:changed signal [3], which means that
only changes to the current value trigger the callback
(which in turn calls `signal_adjustment_value_changed()`),
but changes to other GtkAdjustment properties don't.

[1] https://docs.gtk.org/gtk3/class.Adjustment.html
[2] https://docs.gtk.org/gtk3/signal.Adjustment.value-changed.html
[3] https://docs.gtk.org/gtk3/signal.Adjustment.changed.html

Change-Id: Icbeb92f3e53e0747154038aeca2f11626623fbae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182400
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
This commit is contained in:
Michael Weghorn
2025-03-02 11:52:32 +01:00
parent 8c86f055e3
commit c4dbac16a1
4 changed files with 12 additions and 6 deletions
+6 -3
View File
@@ -2693,10 +2693,10 @@ public:
class VCL_DLLPUBLIC Scrollbar : virtual public Widget
{
Link<Scrollbar&, void> m_aChangeHdl;
Link<Scrollbar&, void> m_aValueChangeHdl;
protected:
void signal_adjustment_changed() { m_aChangeHdl.Call(*this); }
void signal_adjustment_value_changed() { m_aValueChangeHdl.Call(*this); }
public:
virtual void adjustment_configure(int value, int lower, int upper, int step_increment,
@@ -2721,7 +2721,10 @@ public:
virtual ScrollType get_scroll_type() const = 0;
void connect_adjustment_changed(const Link<Scrollbar&, void>& rLink) { m_aChangeHdl = rLink; }
void connect_adjustment_value_changed(const Link<Scrollbar&, void>& rLink)
{
m_aValueChangeHdl = rLink;
}
};
class VCL_DLLPUBLIC SizeGroup
+1 -1
View File
@@ -105,7 +105,7 @@ void ScrollAdaptor::EnableRTL(bool bEnable) { m_xScrollBar->set_direction(bEnabl
void ScrollAdaptor::SetScrollHdl(const Link<weld::Scrollbar&, void>& rLink)
{
m_aLink = rLink;
m_xScrollBar->connect_adjustment_changed(rLink);
m_xScrollBar->connect_adjustment_value_changed(rLink);
}
void ScrollAdaptor::SetMouseReleaseHdl(const Link<const MouseEvent&, bool>& rLink)
+4 -1
View File
@@ -2634,7 +2634,10 @@ public:
};
}
IMPL_LINK_NOARG(SalInstanceScrollbar, ScrollHdl, ScrollBar*, void) { signal_adjustment_changed(); }
IMPL_LINK_NOARG(SalInstanceScrollbar, ScrollHdl, ScrollBar*, void)
{
signal_adjustment_value_changed();
}
SalInstanceNotebook::SalInstanceNotebook(TabControl* pNotebook, SalInstanceBuilder* pBuilder,
bool bTakeOwnership)
+1 -1
View File
@@ -8634,7 +8634,7 @@ private:
{
GtkInstanceScrollbar* pThis = static_cast<GtkInstanceScrollbar*>(widget);
SolarMutexGuard aGuard;
pThis->signal_adjustment_changed();
pThis->signal_adjustment_value_changed();
}
#if GTK_CHECK_VERSION(4, 0, 0)