Code

now that selection description includes style (filtered, clipped), we need to update...
[inkscape.git] / src / file.cpp
index 6fa5563c927cbd9813cca857359e33484a1ba69d..5c729eeeb65b1032a8c61cb0ca255d6bdbcad34a 100644 (file)
@@ -96,12 +96,14 @@ static void sp_file_add_recent(gchar const *uri)
 {
     GtkRecentManager *recent = gtk_recent_manager_get_default();
     gchar *fn = g_filename_from_utf8(uri, -1, NULL, NULL, NULL);
-    gchar *uri_to_add = g_filename_to_uri(fn, NULL, NULL);
-    if (uri_to_add) {
-        gtk_recent_manager_add_item(recent, uri_to_add);
+    if (fn) {
+        gchar *uri_to_add = g_filename_to_uri(fn, NULL, NULL);
+        if (uri_to_add) {
+            gtk_recent_manager_add_item(recent, uri_to_add);
+            g_free(uri_to_add);
+        }
+        g_free(fn);
     }
-    g_free(uri_to_add);
-    g_free(fn);
 }
 
 
@@ -196,6 +198,10 @@ sp_file_open(const Glib::ustring &uri,
              Inkscape::Extension::Extension *key,
              bool add_to_recent, bool replace_empty)
 {
+    SPDesktop *desktop = SP_ACTIVE_DESKTOP;
+    if (desktop)
+        desktop->setWaitingCursor();
+
     SPDocument *doc = NULL;
     try {
         doc = Inkscape::Extension::open(key, uri.c_str());
@@ -205,8 +211,10 @@ sp_file_open(const Glib::ustring &uri,
         doc = NULL;
     }
 
+    if (desktop)
+        desktop->clearWaitingCursor();
+
     if (doc) {
-        SPDesktop *desktop = SP_ACTIVE_DESKTOP;
         SPDocument *existing = desktop ? sp_desktop_document(desktop) : NULL;
 
         if (existing && existing->virgin && replace_empty) {