]> spindle.queued.net Git - midori/commitdiff
Use gtk_show_uri, GIO or Exo to open email adresses
authorChristian Dywan <christian@twotoasts.de>
Mon, 16 Mar 2009 00:21:59 +0000 (01:21 +0100)
committerChristian Dywan <christian@twotoasts.de>
Mon, 16 Mar 2009 00:21:59 +0000 (01:21 +0100)
midori/compat.c
midori/compat.h
midori/midori-browser.c

index 253d93ed14e74f3fa5e09aefb9c63218bac1aa60..b3be7e89a4565538b6c37ad14573005adb296054 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
+ Copyright (C) 2008-2009 Christian Dywan <christian@twotoasts.de>
 
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
@@ -31,6 +31,21 @@ g_strcmp0 (const gchar* string1,
 
 #endif
 
+#if !GTK_CHECK_VERSION (2, 14, 0)
+
+gboolean
+gtk_show_uri (GdkScreen*   screen,
+              const gchar* uri,
+              guint32      timestamp,
+              GError**     error)
+{
+    g_return_val_if_fail (uri != NULL, FALSE);
+
+    return g_app_info_launch_default_for_uri (uri, NULL, NULL);
+}
+
+#endif
+
 #if !GTK_CHECK_VERSION(2, 12, 0)
 
 void
index 261a2a7ae3d709be4733a604421c4634368835b5..2cd58882fd32a26561d41ef0d795df36a39ff3d5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
+ Copyright (C) 2008-2009 Christian Dywan <christian@twotoasts.de>
 
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
     #include <config.h>
 #endif
 
-#include <glib.h>
+#include <webkit/webkit.h>
+
+G_BEGIN_DECLS
 
 #if !GLIB_CHECK_VERSION (2, 14, 0)
     #define G_PARAM_STATIC_STRINGS \
     (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)
 #endif
 
-#if GLIB_CHECK_VERSION (2, 16, 0)
-    #include <gio/gio.h>
-#endif
-#include <webkit/webkit.h>
-
-G_BEGIN_DECLS
-
 #if !GLIB_CHECK_VERSION (2, 16, 0)
 
 gint
@@ -38,6 +33,16 @@ g_strcmp0 (const gchar* string1,
 
 #endif
 
+#if !GTK_CHECK_VERSION (2, 14, 0)
+
+gboolean
+gtk_show_uri                           (GdkScreen*         screen,
+                                        const gchar*       uri,
+                                        guint32            timestamp,
+                                        GError**           error);
+
+#endif
+
 #if !GTK_CHECK_VERSION(2, 12, 0)
 
 void
index 1b13ee3722420eca34dd21404fecfc75d222902a..05d367bbd1be30ef498831b61092195b52d473d0 100644 (file)
@@ -2777,9 +2777,13 @@ _action_about_activate_email (GtkAboutDialog* about,
                               const gchar*    uri,
                               gpointer        user_data)
 {
-    gchar* command = g_strconcat ("xdg-open ", uri, NULL);
-    g_spawn_command_line_async (command, NULL);
-    g_free (command);
+    if (!gtk_show_uri (NULL, uri, GDK_CURRENT_TIME, NULL))
+    {
+        /* Fallback to Exo for example if GConf isn't setup */
+        gchar* command = g_strconcat ("exo-open ", uri, NULL);
+        g_spawn_command_line_async (command, NULL);
+        g_free (command);
+    }
 }
 
 static void