summaryrefslogtreecommitdiff
path: root/src/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/dropdown.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp
index 1056ebced..e32cf4151 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();
+ }
}
}
};