Code

fix crash bug: PDF export: crash in 'CairoRenderContext::_showGlyphs'
[inkscape.git] / src / extension / system.cpp
index 43e7af494430ec6ae43f276960b203c64017ec69..5412a5cc0b2a5de3c9e59cbcefa8060917be3016 100644 (file)
@@ -206,7 +206,7 @@ save(Extension *key, SPDocument *doc, gchar const *filename, bool setextension,
         }
         /* If autodetect fails, save as Inkscape SVG */
         if (omod == NULL) {
-            omod = dynamic_cast<Output *>(db.get(SP_MODULE_KEY_OUTPUT_SVG_INKSCAPE));
+            // omod = dynamic_cast<Output *>(db.get(SP_MODULE_KEY_OUTPUT_SVG_INKSCAPE)); use exception and let user choose
         }
     } else {
         omod = dynamic_cast<Output *>(key);
@@ -588,6 +588,15 @@ get_file_save_path (SPDocument *doc, FileSaveMethod method) {
     Glib::ustring path;
     switch (method) {
         case FILE_SAVE_METHOD_SAVE_AS:
+        {
+            bool use_current_dir = prefs->getBool("/dialogs/save_as/use_current_dir", true);
+            if (doc->uri && use_current_dir) {
+                path = Glib::path_get_dirname(doc->uri);
+            } else {
+                path = prefs->getString("/dialogs/save_as/path");
+            }
+            break;
+        }
         case FILE_SAVE_METHOD_TEMPORARY:
             path = prefs->getString("/dialogs/save_as/path");
             break;