diff options
author | rubidium <rubidium@openttd.org> | 2009-02-06 18:00:05 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-02-06 18:00:05 +0000 |
commit | 841050ec8353118df6a0de7dc7a2b56fde74f24a (patch) | |
tree | 549f6eccba291590efb076d37b3aa5118c193086 /src/network | |
parent | cecc3863cdcc355ab6245bf8ebb8d62a468877ea (diff) | |
download | openttd-841050ec8353118df6a0de7dc7a2b56fde74f24a.tar.xz |
(svn r15377) -Fix [FS#2607]: filter did resort when unneeded and didn't deselect properly in some cases (Roujin)
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/network_content_gui.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 5ae37eca1..3c56a69c8 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -279,15 +279,18 @@ class NetworkContentListWindow : public QueryStringBaseWindow, ContentCallback { { if (!this->content.Filter(this->edit_str_buf)) return; - this->selected = NULL; - this->list_pos = 0; - + /* update list position */ for (ConstContentIterator iter = this->content.Begin(); iter != this->content.End(); iter++) { if (*iter == this->selected) { this->list_pos = iter - this->content.Begin(); - break; + this->ScrollToSelected(); + return; } } + + /* previously selected item not in list anymore */ + this->selected = NULL; + this->list_pos = 0; } /** Make sure that the currently selected content info is within the visible part of the matrix */ |