[yelp/gnome-2-30] [src/yelp-window.c] Fix "Open Link in New Window", bug #615457 (Edward Sheldrake)



commit 779e05a0e93c5432deaa714aaea7ae17a950f6fc
Author: Shaun McCance <shaunm gnome org>
Date:   Tue May 18 10:23:09 2010 -0500

    [src/yelp-window.c] Fix "Open Link in New Window", bug #615457 (Edward Sheldrake)

 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 67bfc09..1221ba3 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... */



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