[PATCH 2/2] Attempt to override the URI handler in the about dialog

Lubomir I. Ivanov neolit123 at gmail.com
Mon Jan 14 15:20:30 PST 2013

From: "Lubomir I. Ivanov" <neolit123 at gmail.com>

The previous patch in this series adds the function
subsurface_launch_for_uri(), which has to be called from the about
dialog instead of the default function for the URI calls to work
on Windows - i.e. opening links from the dialog.

gtk_about_dialog_set_url_hook() is a deprecated method, but seems
to be the only reasonable way to make the override between GTK 2.20 -
2.24 possible. The "activate-link" signal is recomended instead,
but is not portable for GTK bellow 2.24.

An alternative would be to somehow hack into the GtkAboutDialog
and override the callback for each clickable link.

Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
 gtk-gui.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gtk-gui.c b/gtk-gui.c
index ae9c374..664c108 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -957,6 +957,11 @@ static void renumber_dialog(GtkWidget *w, gpointer data)
+static void about_dialog_link_cb(GtkAboutDialog *dialog, const gchar *link, gpointer data)
+	subsurface_launch_for_uri(link);
 static void about_dialog(GtkWidget *w, gpointer data)
 	const char *logo_property = NULL;
@@ -984,6 +989,7 @@ static void about_dialog(GtkWidget *w, gpointer data)
 		/* Must be last: */
 		logo_property, logo,
+	gtk_about_dialog_set_url_hook(about_dialog_link_cb, NULL, NULL);
 static void view_list(GtkWidget *w, gpointer data)

More information about the subsurface mailing list