diff options
author | Shaun McCance <shaunm@gnome.org> | 2010-05-18 10:23:09 -0500 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2010-05-18 10:23:09 -0500 |
commit | 779e05a0e93c5432deaa714aaea7ae17a950f6fc (patch) | |
tree | 53a6b43c6275a317d9d0545c465fbbb1e690b97d | |
parent | 72412557f05822c9f670849300f8f47d91fa5963 (diff) | |
download | yelp-779e05a0e93c5432deaa714aaea7ae17a950f6fc.tar.gz |
[src/yelp-window.c] Fix "Open Link in New Window", bug #615457 (Edward Sheldrake)
-rw-r--r-- | src/yelp-window.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/yelp-window.c b/src/yelp-window.c index 67bfc09d..1221ba3b 100644 --- a/src/yelp-window.c +++ b/src/yelp-window.c @@ -2545,14 +2545,32 @@ static void window_copy_link_cb (GtkAction *action, YelpWindow *window) static void window_open_link_cb (GtkAction *action, YelpWindow *window) { - yelp_window_load (window, window->priv->uri); + gchar *uri; + + if (g_str_has_prefix (window->priv->uri, "xref:")) + uri = g_strconcat (window->priv->base_uri, "#", window->priv->uri + 5, NULL); + else + uri = g_strdup (window->priv->uri); + + yelp_window_load (window, uri); + + g_free (uri); } static void window_open_link_new_cb (GtkAction *action, YelpWindow *window) { + gchar *uri; + + if (g_str_has_prefix (window->priv->uri, "xref:")) + uri = g_strconcat (window->priv->base_uri, "#", window->priv->uri + 5, NULL); + else + uri = g_strdup (window->priv->uri); + g_signal_emit (window, signals[NEW_WINDOW_REQUESTED], 0, - window->priv->uri); + uri); + + g_free (uri); } /* TODO: This doesn't work... */ |