diff options
author | Muthu Subramanian K <sumuthu@novell.com> | 2010-11-10 13:41:59 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedricbosdo@openoffice.org> | 2010-11-10 13:43:02 +0100 |
commit | 77a5a5c93da60dfc436d8816e162a647fa0cd5ed (patch) | |
tree | 5c37d2eaa512f6aec79dbf4a3d97d3e72f21c147 /fpicker/source/unx/gnome | |
parent | 82664f67473931bbe3e5a1cb36da479b5b101fd4 (diff) |
i#112411: Fixed Gnome filepicker filter selection
Diffstat (limited to 'fpicker/source/unx/gnome')
-rw-r--r-- | fpicker/source/unx/gnome/SalGtkFilePicker.cxx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/fpicker/source/unx/gnome/SalGtkFilePicker.cxx b/fpicker/source/unx/gnome/SalGtkFilePicker.cxx index fff90f7f72..a417f81cc1 100644 --- a/fpicker/source/unx/gnome/SalGtkFilePicker.cxx +++ b/fpicker/source/unx/gnome/SalGtkFilePicker.cxx @@ -909,6 +909,9 @@ uno::Sequence<rtl::OUString> SAL_CALL SalGtkFilePicker::getSelectedFiles() throw { static const OUString aStarDot = OUString::createFromAscii( "*." ); + ::rtl::OUString aNewFilter; + ::rtl::OUString aOldFilter = getCurrentFilter(); + sal_Bool bChangeFilter = sal_True; for ( FilterList::iterator aListIter = m_pFilterList->begin(); aListIter != m_pFilterList->end(); ++aListIter @@ -916,11 +919,17 @@ uno::Sequence<rtl::OUString> SAL_CALL SalGtkFilePicker::getSelectedFiles() throw { if( aListIter->getFilter().indexOf( aStarDot+sExtension ) >= 0 ) { - setCurrentFilter( aListIter->getTitle() ); + if( !aNewFilter.getLength() ) + aNewFilter = aListIter->getTitle(); + + if( aOldFilter == aListIter->getTitle() ) + bChangeFilter = sal_False; + bExtensionTypedIn = true; - break; } } + if( bChangeFilter && bExtensionTypedIn ) + setCurrentFilter( aNewFilter ); } } |