diff --git a/src/file.cpp b/src/file.cpp
index 71a3ddd6cc581191634e98a8ecf7f48a58d8796e..5c729eeeb65b1032a8c61cb0ca255d6bdbcad34a 100644 (file)
--- a/src/file.cpp
+++ b/src/file.cpp
{
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);
- gtk_recent_manager_add_item(recent, uri_to_add);
- g_free(uri_to_add);
- g_free(fn);
+ 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);
+ }
}
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());
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) {