From d8567d269926e10e95c079c4fa13d59e8fe8c6ea Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 9 Jan 2011 15:25:33 +0000 Subject: [PATCH] (svn r21754) -Codechange: Scroll the matrix widget to make a clicked entry fully visible. --- src/widget.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/widget.cpp b/src/widget.cpp index 4f2c498f28..559f8d3919 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -1374,6 +1374,13 @@ void NWidgetMatrix::SetColour(Colours colour) void NWidgetMatrix::SetClicked(int clicked) { this->clicked = clicked; + if (this->sb != NULL && this->widgets_x != 0) { + int vpos = (this->clicked / this->widgets_x) * this->widget_h; // Vertical position of the top. + /* Need to scroll down -> Scroll to the bottom. + * However, last entry has no 'this->pip_inter' underneath, and we must stay below this->sb->GetCount() */ + if (this->sb->GetPosition() < vpos) vpos += this->widget_h - this->pip_inter - 1; + this->sb->ScrollTowards(vpos); + } } /**