summaryrefslogtreecommitdiff
path: root/fpicker/source/unx/gnome
diff options
context:
space:
mode:
authorMuthu Subramanian K <sumuthu@novell.com>2010-11-10 13:41:59 +0100
committerCédric Bosdonnat <cedricbosdo@openoffice.org>2010-11-10 13:43:02 +0100
commit77a5a5c93da60dfc436d8816e162a647fa0cd5ed (patch)
tree5c37d2eaa512f6aec79dbf4a3d97d3e72f21c147 /fpicker/source/unx/gnome
parent82664f67473931bbe3e5a1cb36da479b5b101fd4 (diff)
i#112411: Fixed Gnome filepicker filter selection
Diffstat (limited to 'fpicker/source/unx/gnome')
-rw-r--r--fpicker/source/unx/gnome/SalGtkFilePicker.cxx13
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 );
}
}