sc/source/ui/view/gridwin.cxx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)
New commits: commit 3ed1cd71b82ff0c11695fef1b12e422370beeff8 Author: Arkadiy Illarionov <qar...@gmail.com> AuthorDate: Tue Dec 25 22:23:25 2018 +0300 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Thu Dec 27 07:53:19 2018 +0100 Use appropriate STL function for searching in sorted list 48b35ed43db87d21a943e66cfa4f59213dcfe3a1 follow-up, see discussion in https://gerrit.libreoffice.org/65572 Change-Id: Ic60b21be6093a44e17252a2a34e38bf2411ab07d Reviewed-on: https://gerrit.libreoffice.org/65608 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index a1a2c6049379..bc101b6087d4 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -1160,9 +1160,18 @@ void ScGridWindow::LaunchDataSelectMenu( SCCOL nCol, SCROW nRow ) else pNew.reset(new ScTypedStrData(aDocStr, 0.0, ScTypedStrData::Standard)); - auto it = std::find_if(aStrings.begin(), aStrings.end(), FindTypedStrData(*pNew, true)); - if (it != aStrings.end()) - nSelPos = static_cast<sal_Int32>(std::distance(aStrings.begin(), it)); + if (pData->GetListType() == css::sheet::TableValidationVisibility::SORTEDASCENDING) + { + auto it = std::lower_bound(aStrings.begin(), aStrings.end(), *pNew, ScTypedStrData::LessCaseSensitive()); + if (it != aStrings.end() && ScTypedStrData::EqualCaseSensitive()(*it, *pNew)) + nSelPos = static_cast<sal_Int32>(std::distance(aStrings.begin(), it)); + } + else + { + auto it = std::find_if(aStrings.begin(), aStrings.end(), FindTypedStrData(*pNew, true)); + if (it != aStrings.end()) + nSelPos = static_cast<sal_Int32>(std::distance(aStrings.begin(), it)); + } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits