diff options
-rw-r--r-- | libcaja-private/caja-link.c | 5 | ||||
-rw-r--r-- | libcaja-private/caja-link.h | 3 | ||||
-rw-r--r-- | src/file-manager/fm-directory-view.c | 31 |
3 files changed, 28 insertions, 11 deletions
diff --git a/libcaja-private/caja-link.c b/libcaja-private/caja-link.c index 741e9d8d..72f5373f 100644 --- a/libcaja-private/caja-link.c +++ b/libcaja-private/caja-link.c @@ -197,7 +197,8 @@ caja_link_local_create (const char *directory_uri, const char *target_uri, const GdkPoint *point, int screen, - gboolean unique_filename) + gboolean unique_filename, + GError **error) { char *real_directory_uri; char *contents; @@ -274,7 +275,7 @@ caja_link_local_create (const char *directory_uri, contents, strlen (contents), NULL, FALSE, G_FILE_CREATE_NONE, - NULL, NULL, NULL)) + NULL, NULL, error)) { g_free (contents); g_object_unref (file); diff --git a/libcaja-private/caja-link.h b/libcaja-private/caja-link.h index a4752d57..9f62bf63 100644 --- a/libcaja-private/caja-link.h +++ b/libcaja-private/caja-link.h @@ -34,7 +34,8 @@ gboolean caja_link_local_create (const char const char *target_uri, const GdkPoint *point, int screen, - gboolean unique_filename); + gboolean unique_filename, + GError **error); gboolean caja_link_local_set_text (const char *uri, const char *text); gboolean caja_link_local_set_icon (const char *uri, diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c index 0d3c7a51..70db80d8 100644 --- a/src/file-manager/fm-directory-view.c +++ b/src/file-manager/fm-directory-view.c @@ -10732,6 +10732,8 @@ fm_directory_view_handle_netscape_url_drop (FMDirectoryView *view, GdkScreen *screen; int screen_num; char *link_display_name; + GError *error = NULL; + gboolean success; link_display_name = g_strdup_printf (_("Link to %s"), link_name); @@ -10745,14 +10747,27 @@ fm_directory_view_handle_netscape_url_drop (FMDirectoryView *view, screen = gtk_widget_get_screen (GTK_WIDGET (view)); screen_num = gdk_x11_screen_get_screen_number (screen); - caja_link_local_create (target_uri != NULL ? target_uri : container_uri, - link_name, - link_display_name, - "mate-fs-bookmark", - url, - &point, - screen_num, - TRUE); + success = caja_link_local_create (target_uri != NULL ? target_uri : container_uri, + link_name, + link_display_name, + "mate-fs-bookmark", + url, + &point, + screen_num, + TRUE, + &error); + if (!success) { + if (error) { + eel_show_error_dialog (_("Link Creation Failed"), + error->message, NULL); + g_error_free (error); + } else { + gchar *error_message = g_strdup_printf (_("Cannot create the link to %s"), url); + eel_show_error_dialog (_("Link Creation Failed"), + error_message, NULL); + g_free (error_message); + } + } g_free (link_display_name); } |