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 13:02:05 +0100 |
commit | 23ad16498adf24af7cc6fba243f1593147b65891 (patch) | |
tree | 9b3e781faeef1e69ae5c0deea060a3e1fcd6a117 /cui | |
parent | 211d180af4e5e21f742f6bc9bed82ffaade2cd2a (diff) |
tdf#129134 ApplicationColors Scrolled List moves too little
Change-Id: I5cb6ac017f1d2a916297676724d523634afb2020
Reviewed-on: https://gerrit.libreoffice.org/84254
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui')
-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 56e75fecd969..b0e11d5ad72b 100644 --- a/cui/source/options/optcolor.cxx +++ b/cui/source/options/optcolor.cxx @@ -171,7 +171,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*); @@ -214,6 +215,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 () |