From: Xavier Claessens Date: Mon, 1 Dec 2008 21:01:54 +0000 (+0000) Subject: Use GTK+ 2.14.0 and gtk_show_uri (Cosimo Cecchi). X-Git-Url: https://git.0d.be/?p=empathy.git;a=commitdiff_plain;h=646ed927c6691796df969502bf5031771ace99fb Use GTK+ 2.14.0 and gtk_show_uri (Cosimo Cecchi). svn path=/trunk/; revision=1942 --- diff --git a/configure.ac b/configure.ac index 041e5a48..a56937ca 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_SUBST(LIBEMPATHY_GTK_REVISION) # Minimal version required GLIB_REQUIRED=2.16.0 -GTK_REQUIRED=2.12.0 +GTK_REQUIRED=2.14.0 GCONF_REQUIRED=1.2.0 LIBGLADE_REQUIRED=2.0.0 LIBPANELAPPLET_REQUIRED=2.10.0 diff --git a/libempathy-gtk/empathy-chat-view.c b/libempathy-gtk/empathy-chat-view.c index 2131cecb..367b6308 100644 --- a/libempathy-gtk/empathy-chat-view.c +++ b/libempathy-gtk/empathy-chat-view.c @@ -113,7 +113,7 @@ static gboolean chat_view_url_event_cb (GtkTextTag * GObject *object, GdkEvent *event, GtkTextIter *iter, - GtkTextBuffer *buffer); + EmpathyChatView *view); static void chat_view_open_address_cb (GtkMenuItem *menuitem, const gchar *url); static void chat_view_copy_address_cb (GtkMenuItem *menuitem, @@ -289,7 +289,7 @@ chat_view_setup_tags (EmpathyChatView *view) g_signal_connect (tag, "event", G_CALLBACK (chat_view_url_event_cb), - priv->buffer); + view); g_signal_connect (view, "motion-notify-event", @@ -497,17 +497,20 @@ chat_view_event_cb (EmpathyChatView *view, } static gboolean -chat_view_url_event_cb (GtkTextTag *tag, - GObject *object, - GdkEvent *event, - GtkTextIter *iter, - GtkTextBuffer *buffer) +chat_view_url_event_cb (GtkTextTag *tag, + GObject *object, + GdkEvent *event, + GtkTextIter *iter, + EmpathyChatView *view) { - GtkTextIter start, end; - gchar *str; + GtkTextIter start, end; + gchar *str; + EmpathyChatViewPriv *priv; + + priv = GET_PRIV (view); /* If the link is being selected, don't do anything. */ - gtk_text_buffer_get_selection_bounds (buffer, &start, &end); + gtk_text_buffer_get_selection_bounds (priv->buffer, &start, &end); if (gtk_text_iter_get_offset (&start) != gtk_text_iter_get_offset (&end)) { return FALSE; } @@ -517,12 +520,12 @@ chat_view_url_event_cb (GtkTextTag *tag, if (gtk_text_iter_backward_to_tag_toggle (&start, tag) && gtk_text_iter_forward_to_tag_toggle (&end, tag)) { - str = gtk_text_buffer_get_text (buffer, + str = gtk_text_buffer_get_text (priv->buffer, &start, &end, FALSE); - empathy_url_show (str); + empathy_url_show (GTK_WIDGET (view), str); g_free (str); } } @@ -533,7 +536,7 @@ chat_view_url_event_cb (GtkTextTag *tag, static void chat_view_open_address_cb (GtkMenuItem *menuitem, const gchar *url) { - empathy_url_show (url); + empathy_url_show (GTK_WIDGET (menuitem), url); } static void diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index 91783d7c..cd5cf076 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -1332,7 +1332,8 @@ fixup_url (const gchar *url) } void -empathy_url_show (const char *url) +empathy_url_show (GtkWidget *parent, + const char *url) { gchar *real_url; GError *error = NULL; @@ -1342,10 +1343,9 @@ empathy_url_show (const char *url) url = real_url; } - /* FIXME: this does not work for multihead, we should use - * GdkAppLaunchContext or gtk_show_url, see bug #514396. - */ - g_app_info_launch_default_for_uri (url, NULL, &error); + gtk_show_uri (gtk_widget_get_screen (parent), url, + gtk_get_current_event_time (), &error); + if (error) { GtkWidget *dialog; @@ -1371,7 +1371,7 @@ link_button_hook (GtkLinkButton *button, const gchar *link, gpointer user_data) { - empathy_url_show (link); + empathy_url_show (GTK_WIDGET (button), link); } GtkWidget * diff --git a/libempathy-gtk/empathy-ui-utils.h b/libempathy-gtk/empathy-ui-utils.h index 93261502..4a6efc6d 100644 --- a/libempathy-gtk/empathy-ui-utils.h +++ b/libempathy-gtk/empathy-ui-utils.h @@ -102,7 +102,8 @@ void empathy_window_present (GtkWindow *windo void empathy_window_iconify (GtkWindow *window, GtkStatusIcon *status_icon); GtkWindow * empathy_get_toplevel_window (GtkWidget *widget); -void empathy_url_show (const char *url); +void empathy_url_show (GtkWidget *parent, + const char *url); void empathy_toggle_button_set_state_quietly (GtkWidget *widget, GCallback callback, gpointer user_data, diff --git a/python/pyempathygtk/pyempathygtk.defs b/python/pyempathygtk/pyempathygtk.defs index e4044668..69a17d37 100644 --- a/python/pyempathygtk/pyempathygtk.defs +++ b/python/pyempathygtk/pyempathygtk.defs @@ -1812,6 +1812,7 @@ (c-name "empathy_url_show") (return-type "none") (parameters + '("GtkWidget*" "parent") '("const-char*" "url") ) ) diff --git a/src/empathy-about-dialog.c b/src/empathy-about-dialog.c index 14d29258..4765e6b3 100644 --- a/src/empathy-about-dialog.c +++ b/src/empathy-about-dialog.c @@ -99,7 +99,7 @@ about_dialog_activate_link_cb (GtkAboutDialog *about, const gchar *link, gpointer data) { - empathy_url_show (link); + empathy_url_show (GTK_WIDGET (about), link); } void diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c index 0cca7035..72967cbd 100644 --- a/src/empathy-accounts-dialog.c +++ b/src/empathy-accounts-dialog.c @@ -951,7 +951,7 @@ static void accounts_dialog_button_help_clicked_cb (GtkWidget *button, EmpathyAccountsDialog *dialog) { - empathy_url_show ("ghelp:empathy?empathy-create-account"); + empathy_url_show (button, "ghelp:empathy?empathy-create-account"); } static void diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index 255c5d67..5a8cb104 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -775,7 +775,7 @@ static void chat_window_help_contents_cb (GtkWidget *menuitem, EmpathyChatWindow *window) { - empathy_url_show ("ghelp:empathy?chat"); + empathy_url_show (menuitem, "ghelp:empathy?chat"); } static void diff --git a/src/empathy-ft-manager.c b/src/empathy-ft-manager.c index 78308b9d..a506adde 100644 --- a/src/empathy-ft-manager.c +++ b/src/empathy-ft-manager.c @@ -556,7 +556,7 @@ ft_manager_open (EmpathyFTManager *ft_manager) uri = g_object_get_data (G_OBJECT (tp_file), "uri"); DEBUG ("Opening URI: %s", uri); - empathy_url_show (uri); + empathy_url_show (GTK_WIDGET (ft_manager->priv->window), uri); g_object_unref (tp_file); } diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c index c5437385..49bfe3d0 100644 --- a/src/empathy-main-window.c +++ b/src/empathy-main-window.c @@ -924,7 +924,7 @@ static void main_window_help_contents_cb (GtkWidget *widget, EmpathyMainWindow *window) { - empathy_url_show ("ghelp:empathy"); + empathy_url_show (widget, "ghelp:empathy"); } static gboolean