diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-12-02 17:06:34 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-12-03 09:56:32 +0100 |
commit | c5fc7dd4475d21abdfc9663c3ac55cce319c299d (patch) | |
tree | 01a7e89d80b5d7fa6f75340a4eb24ac1302af5f6 /cui/source | |
parent | 923cb4c8f9780a8703bf37856bc2abfc3e31929e (diff) |
tdf#129134 ApplicationColors Scrolled List moves too little
Change-Id: I5cb6ac017f1d2a916297676724d523634afb2020
Reviewed-on: https://gerrit.libreoffice.org/84252
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui/source')
-rw-r--r-- | cui/source/options/optcolor.cxx | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx index 244cbbbf0dea..0e6cb822715a 100644 --- a/cui/source/options/optcolor.cxx +++ b/cui/source/options/optcolor.cxx @@ -169,7 +169,8 @@ public: public: void SetLinks(Link<weld::ToggleButton&,void> const&, Link<ColorListBox&,void> const&, - Link<weld::Widget&,void> const&); + Link<weld::Widget&,void> const&, + weld::ScrolledWindow& rScroll); void Update(EditableColorConfig const*, EditableExtendedColorConfig const*); void ClickHdl(EditableColorConfig*, weld::ToggleButton&); void ColorHdl(EditableColorConfig*, EditableExtendedColorConfig*, const ColorListBox*); @@ -212,6 +213,11 @@ private: public: void SetText(const OUString& rLabel) { dynamic_cast<weld::Label&>(*m_xText).set_label(rLabel); } void set_width_request(int nTextWidth) { m_xText->set_size_request(nTextWidth, -1); } + int get_height_request() const + { + return std::max(m_xText->get_preferred_size().Height(), + m_xColorList->get_widget().get_preferred_size().Height()); + } void Hide (); public: void SetLinks(Link<weld::ToggleButton&,void> const&, @@ -458,10 +464,15 @@ void ColorConfigWindow_Impl::AdjustExtraWidths(int nTextWidth) // SetLinks() void ColorConfigWindow_Impl::SetLinks(Link<weld::ToggleButton&,void> const& aCheckLink, Link<ColorListBox&,void> const& aColorLink, - Link<weld::Widget&,void> const& rGetFocusLink) + Link<weld::Widget&,void> const& rGetFocusLink, + weld::ScrolledWindow& rScroll) { + if (vEntries.empty()) + return; for (auto const & i: vEntries) i->SetLinks(aCheckLink, aColorLink, rGetFocusLink); + // 6 is the spacing set on ColorConfigWindow + rScroll.vadjustment_set_step_increment(vEntries[0]->get_height_request() + 6); } // Update() @@ -622,7 +633,7 @@ ColorConfigCtrl_Impl::ColorConfigCtrl_Impl(weld::Window* pTopLevel, weld::Builde Link<weld::ToggleButton&,void> aCheckLink = LINK(this, ColorConfigCtrl_Impl, ClickHdl); Link<ColorListBox&,void> aColorLink = LINK(this, ColorConfigCtrl_Impl, ColorHdl); Link<weld::Widget&,void> const& aGetFocusLink = LINK(this, ColorConfigCtrl_Impl, ControlFocusHdl); - m_xScrollWindow->SetLinks(aCheckLink, aColorLink, aGetFocusLink); + m_xScrollWindow->SetLinks(aCheckLink, aColorLink, aGetFocusLink, *m_xVScroll); } void ColorConfigCtrl_Impl::Update () |