@@ -484,7 +484,7 @@ void AppendSaveFileQueryDictEntryCurrentName(DBusMessageIter& sub_iter, const ch
484484 dbus_message_iter_close_container (&sub_iter, &sub_sub_iter);
485485}
486486
487- void AppendSaveFileQueryDictEntryCurrentFolder (DBusMessageIter& sub_iter, const char * path) {
487+ void AppendOpenFileQueryDictEntryCurrentFolder (DBusMessageIter& sub_iter, const char * path) {
488488 if (!path) return ;
489489 DBusMessageIter sub_sub_iter;
490490 DBusMessageIter variant_iter;
@@ -551,7 +551,8 @@ template <bool Multiple, bool Directory>
551551void AppendOpenFileQueryParams (DBusMessage* query,
552552 const char * handle_token,
553553 const nfdnfilteritem_t * filterList,
554- nfdfiltersize_t filterCount) {
554+ nfdfiltersize_t filterCount,
555+ const nfdnchar_t * defaultPath) {
555556 DBusMessageIter iter;
556557 dbus_message_iter_init_append (query, &iter);
557558
@@ -565,6 +566,7 @@ void AppendOpenFileQueryParams(DBusMessage* query,
565566 AppendOpenFileQueryDictEntryMultiple<Multiple>(sub_iter);
566567 AppendOpenFileQueryDictEntryDirectory<Directory>(sub_iter);
567568 AppendOpenFileQueryDictEntryFilters<!Directory>(sub_iter, filterList, filterCount);
569+ AppendOpenFileQueryDictEntryCurrentFolder (sub_iter, defaultPath);
568570 dbus_message_iter_close_container (&iter, &sub_iter);
569571}
570572
@@ -587,7 +589,7 @@ void AppendSaveFileQueryParams(DBusMessage* query,
587589 AppendOpenFileQueryDictEntryHandleToken (sub_iter, handle_token);
588590 AppendSaveFileQueryDictEntryFilters (sub_iter, filterList, filterCount, defaultName);
589591 AppendSaveFileQueryDictEntryCurrentName (sub_iter, defaultName);
590- AppendSaveFileQueryDictEntryCurrentFolder (sub_iter, defaultPath);
592+ AppendOpenFileQueryDictEntryCurrentFolder (sub_iter, defaultPath);
591593 AppendSaveFileQueryDictEntryCurrentFile (sub_iter, defaultPath, defaultName);
592594 dbus_message_iter_close_container (&iter, &sub_iter);
593595}
@@ -1120,7 +1122,8 @@ nfdresult_t AllocAndCopyFilePathWithExtn(const char* fileUri, const char* extn,
11201122template <bool Multiple, bool Directory>
11211123nfdresult_t NFD_DBus_OpenFile (DBusMessage*& outMsg,
11221124 const nfdnfilteritem_t * filterList,
1123- nfdfiltersize_t filterCount) {
1125+ nfdfiltersize_t filterCount,
1126+ const nfdnchar_t * defaultPath) {
11241127 const char * handle_token_ptr;
11251128 char * handle_obj_path = MakeUniqueObjectPath (&handle_token_ptr);
11261129 Free_Guard<char > handle_obj_path_guard (handle_obj_path);
@@ -1141,7 +1144,7 @@ nfdresult_t NFD_DBus_OpenFile(DBusMessage*& outMsg,
11411144 DBUS_DESTINATION, DBUS_PATH, DBUS_FILECHOOSER_IFACE, " OpenFile" );
11421145 DBusMessage_Guard query_guard (query);
11431146 AppendOpenFileQueryParams<Multiple, Directory>(
1144- query, handle_token_ptr, filterList, filterCount);
1147+ query, handle_token_ptr, filterList, filterCount, defaultPath );
11451148
11461149 DBusMessage* reply =
11471150 dbus_connection_send_with_reply_and_block (dbus_conn, query, DBUS_TIMEOUT_INFINITE, &err);
@@ -1372,11 +1375,10 @@ nfdresult_t NFD_OpenDialogN(nfdnchar_t** outPath,
13721375 const nfdnfilteritem_t * filterList,
13731376 nfdfiltersize_t filterCount,
13741377 const nfdnchar_t * defaultPath) {
1375- (void )defaultPath; // Default path not supported for portal backend
1376-
13771378 DBusMessage* msg;
13781379 {
1379- const nfdresult_t res = NFD_DBus_OpenFile<false , false >(msg, filterList, filterCount);
1380+ const nfdresult_t res =
1381+ NFD_DBus_OpenFile<false , false >(msg, filterList, filterCount, defaultPath);
13801382 if (res != NFD_OKAY) {
13811383 return res;
13821384 }
@@ -1398,11 +1400,10 @@ nfdresult_t NFD_OpenDialogMultipleN(const nfdpathset_t** outPaths,
13981400 const nfdnfilteritem_t * filterList,
13991401 nfdfiltersize_t filterCount,
14001402 const nfdnchar_t * defaultPath) {
1401- (void )defaultPath; // Default path not supported for portal backend
1402-
14031403 DBusMessage* msg;
14041404 {
1405- const nfdresult_t res = NFD_DBus_OpenFile<true , false >(msg, filterList, filterCount);
1405+ const nfdresult_t res =
1406+ NFD_DBus_OpenFile<true , false >(msg, filterList, filterCount, defaultPath);
14061407 if (res != NFD_OKAY) {
14071408 return res;
14081409 }
@@ -1479,7 +1480,7 @@ nfdresult_t NFD_PickFolderN(nfdnchar_t** outPath, const nfdnchar_t* defaultPath)
14791480
14801481 DBusMessage* msg;
14811482 {
1482- const nfdresult_t res = NFD_DBus_OpenFile<false , true >(msg, nullptr , 0 );
1483+ const nfdresult_t res = NFD_DBus_OpenFile<false , true >(msg, nullptr , 0 , defaultPath );
14831484 if (res != NFD_OKAY) {
14841485 return res;
14851486 }
0 commit comments