gnome-terminal r2811 - trunk/src



Author: chpe
Date: Thu May 29 19:56:27 2008
New Revision: 2811
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2811&view=rev

Log:
Use gio to open the URL instead of gnome-url.


Modified:
   trunk/src/terminal-util.c
   trunk/src/terminal-util.h
   trunk/src/terminal-window.c

Modified: trunk/src/terminal-util.c
==============================================================================
--- trunk/src/terminal-util.c	(original)
+++ trunk/src/terminal-util.c	Thu May 29 19:56:27 2008
@@ -21,23 +21,24 @@
 
 #include <config.h>
 
-#include "terminal-intl.h"
-
-#include "terminal-app.h"
-#include "terminal-accels.h"
-#include "terminal-window.h"
-#include "terminal-util.h"
-#include "profile-editor.h"
-#include "encoding.h"
-#include <gconf/gconf-client.h>
-#include <libgnome/gnome-program.h>
-#include <libgnome/gnome-help.h>
-#include <libgnomeui/gnome-ui-init.h>
-#include <libgnomeui/gnome-url.h>
-#include <libgnomeui/gnome-client.h>
 #include <string.h>
 #include <stdlib.h>
 #include <time.h>
+#include <unistd.h>
+#include <sys/types.h>
+
+#include <gio/gio.h>
+#include <gtk/gtk.h>
+//#include "gdk/gdkapplaunchcontext.h"
+
+#include <gconf/gconf-client.h>
+#include <libgnome/gnome-help.h>
+
+#include "terminal-accels.h"
+#include "terminal-app.h"
+#include "terminal-intl.h"
+#include "terminal-util.h"
+#include "terminal-window.h"
 
 void
 terminal_util_set_unique_role (GtkWindow *window, const char *prefix)
@@ -159,42 +160,62 @@
 void
 terminal_util_open_url (GtkWidget *parent,
                         const char *orig_url,
-                        TerminalURLFlavour flavor)
+                        TerminalURLFlavour flavor,
+                        guint32 user_time)
 {
   GError *error = NULL;
-  char *url;
-  
+  char *uri;
+#if GTK_CHECK_VERSION (2, 13, 0)
+  GdkAppLaunchContext *context;
+#endif
+
   g_return_if_fail (orig_url != NULL);
 
   switch (flavor)
     {
     case FLAVOR_DEFAULT_TO_HTTP:
-      url = g_strdup_printf ("http:%s", orig_url);
+      uri = g_strdup_printf ("http:%s", orig_url);
       break;
     case FLAVOR_EMAIL:
       if (strncmp ("mailto:";, orig_url, 7))
-	url = g_strdup_printf ("mailto:%s";, orig_url);
+	uri = g_strdup_printf ("mailto:%s";, orig_url);
       else
-	url = g_strdup (orig_url);
+	uri = g_strdup (orig_url);
       break;
     case FLAVOR_AS_IS:
-      url = g_strdup (orig_url);
+      uri = g_strdup (orig_url);
       break;
     default:
-      url = NULL;
+      uri = NULL;
       g_assert_not_reached ();
     }
 
-  if (!gnome_url_show_on_screen (url, gtk_widget_get_screen (parent), &error))
+#if GTK_CHECK_VERSION (2, 13, 0)
+  context = gdk_app_launch_context_new ();
+  gdk_app_launch_context_set_timestamp (context, user_time);
+
+  if (parent)
+    gdk_app_launch_context_set_screen (context, gtk_widget_get_screen (parent));
+  else
+    gdk_app_launch_context_set_screen (context, gdk_screen_get_default ());
+
+  g_app_info_launch_default_for_uri (uri, G_APP_LAUNCH_CONTEXT (context), &error);
+  g_object_unref (context);
+#else
+#error hi there!
+  g_app_info_launch_default_for_uri (uri, NULL, &error);
+#endif
+
+  if (error)
     {
       terminal_util_show_error_dialog (GTK_WINDOW (parent), NULL,
                                        _("Could not open the address â%sâ:\n%s"),
-                                       url, error->message);
+                                       uri, error->message);
       
       g_error_free (error);
     }
 
-  g_free (url);
+  g_free (uri);
 }
 
 /**

Modified: trunk/src/terminal-util.h
==============================================================================
--- trunk/src/terminal-util.h	(original)
+++ trunk/src/terminal-util.h	Thu May 29 19:56:27 2008
@@ -42,7 +42,8 @@
 
 void terminal_util_open_url (GtkWidget *parent,
                              const char *orig_url,
-                             TerminalURLFlavour flavor);
+                             TerminalURLFlavour flavor,
+                             guint32 user_time);
 
 
 void terminal_util_transform_uris_to_quoted_fuse_paths (char **uris);

Modified: trunk/src/terminal-window.c
==============================================================================
--- trunk/src/terminal-window.c	(original)
+++ trunk/src/terminal-window.c	Thu May 29 19:56:27 2008
@@ -892,7 +892,8 @@
   if (info == NULL)
     return;
 
-  terminal_util_open_url (GTK_WIDGET (window), info->string, info->flavour);
+  terminal_util_open_url (GTK_WIDGET (window), info->string, info->flavour,
+                          gtk_get_current_event_time ());
 }
 
 static void
@@ -1100,7 +1101,8 @@
   if (screen != priv->active_screen)
     return;
 
-  terminal_util_open_url (GTK_WIDGET (window), url, flavour);
+  terminal_util_open_url (GTK_WIDGET (window), url, flavour,
+                          gtk_get_current_event_time ());
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]