From f403166a569ca507f0d7d3032e40b61c3b226b23 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 28 Jan 2010 02:30:59 +0000 Subject: [PATCH] (svn r18932) -Codechange: Don't constantly redraw drop drop list. --- src/widgets/dropdown.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index 1056ebced6..e32cf4151f 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -260,9 +260,16 @@ struct DropdownWindow : Window { virtual void OnTick() { - this->vscroll.UpdatePosition(this->scrolling); - this->scrolling = 0; - this->SetDirty(); + if (this->scrolling != 0) { + int pos = this->vscroll.GetPosition(); + + this->vscroll.UpdatePosition(this->scrolling); + this->scrolling = 0; + + if (pos != this->vscroll.GetPosition()) { + this->SetDirty(); + } + } } virtual void OnMouseLoop() @@ -310,8 +317,10 @@ struct DropdownWindow : Window { if (!this->GetDropDownItem(item)) return; } - this->selected_index = item; - this->SetDirty(); + if (this->selected_index != item) { + this->selected_index = item; + this->SetDirty(); + } } } };