]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-ui-utils.c
Merge back from master
[empathy.git] / libempathy-gtk / empathy-ui-utils.c
index 3dcefdcfbe67319ae70a7ce6f8cc763378b45093..c12cbd1c9ce31c783ce8f9a7f373e30d74f0b183 100644 (file)
@@ -1321,20 +1321,26 @@ empathy_get_toplevel_window (GtkWidget *widget)
        return NULL;
 }
 
-/* The URL opening code can't handle schemeless strings, so we try to be
+/** empathy_make_absolute_url:
+ * @url: an url
+ *
+ * The URL opening code can't handle schemeless strings, so we try to be
  * smart and add http if there is no scheme or doesn't look like a mail
  * address. This should work in most cases, and let us click on strings
  * like "www.gnome.org".
+ *
+ * Returns: a newly allocated url with proper mailto: or http:// prefix, use
+ * g_free when your are done with it
  */
-static gchar *
-fixup_url (const gchar *url)
+gchar *
+empathy_make_absolute_url (const gchar *url)
 {
        g_return_val_if_fail (url != NULL, NULL);
 
        if (g_str_has_prefix (url, "ghelp:") ||
            g_str_has_prefix (url, "mailto:") ||
            strstr (url, ":/")) {
-               return NULL;
+               return g_strdup (url);
        }
 
        if (strstr (url, "@")) {
@@ -1354,12 +1360,9 @@ empathy_url_show (GtkWidget *parent,
        g_return_if_fail (parent == NULL || GTK_IS_WIDGET (parent));
        g_return_if_fail (url != NULL);
 
-       real_url = fixup_url (url);
-       if (real_url) {
-               url = real_url;
-       }
+       real_url = empathy_make_absolute_url (url);
 
-       gtk_show_uri (parent ? gtk_widget_get_screen (parent) : NULL, url,
+       gtk_show_uri (parent ? gtk_widget_get_screen (parent) : NULL, real_url,
                      gtk_get_current_event_time (), &error);
 
        if (error) {
@@ -1476,6 +1479,8 @@ empathy_send_file_with_file_chooser (EmpathyContact *contact)
        gtk_dialog_set_default_response (GTK_DIALOG (widget),
                                         GTK_RESPONSE_OK);
 
+       gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), FALSE);
+
        g_signal_connect (widget, "response",
                          G_CALLBACK (file_manager_send_file_response_cb),
                          contact);