Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorEmil Soleyman <emil@nishra.com>2008-03-29 21:24:55 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2008-03-29 21:24:55 (GMT)
commit3937a33dfda49381aae84fe3f37f08f2dd9244c0 (patch)
tree20b380d4851979b7e9f8f294ad7d3e721bfee569 /shell
parent3b505882baf411a0282c32f127d5decbb2085fd7 (diff)
Reuse g_app_info_launch_default_for_uri to save some code and fix bug
2008-03-30 Emil Soleyman <emil@nishra.com> * shell/ev-window.c: (launch_external_uri): Reuse g_app_info_launch_default_for_uri to save some code and fix bug #525009. svn path=/trunk/; revision=2983
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-window.c29
1 files changed, 4 insertions, 25 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 5c3b58f..4cd205a 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -4577,29 +4577,11 @@ static void
launch_external_uri (EvWindow *window, EvLinkAction *action)
{
const gchar *uri = ev_link_action_get_uri (action);
- const char *content_type;
- GFile *file;
- GFileInfo *file_info;
- GAppInfo *app;
- GList *file_list = NULL;
GError *error = NULL;
+ gboolean ret;
- file = g_file_new_for_uri (uri);
- file_info = g_file_query_info (file,
- G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
- 0, NULL, NULL);
- if (file_info == NULL) {
- g_object_unref (file);
- return;
- }
-
- content_type = g_file_info_get_content_type (file_info);
- app = g_app_info_get_default_for_type (content_type, TRUE);
- g_object_unref (file_info);
-
- file_list = g_list_append (file_list, file);
-
- if (!g_app_info_launch (app, file_list, NULL, &error)) {
+ ret = g_app_info_launch_default_for_uri (uri, NULL, &error);
+ if (ret == FALSE) {
GtkWidget *dialog;
dialog = gtk_message_dialog_new (GTK_WINDOW (window),
@@ -4613,11 +4595,8 @@ launch_external_uri (EvWindow *window, EvLinkAction *action)
G_CALLBACK (gtk_widget_destroy),
NULL);
gtk_widget_show (dialog);
+ g_error_free(error);
}
-
- g_object_unref (app);
- g_object_unref (file);
- g_list_free (file_list);
}
static void