summaryrefslogtreecommitdiff
blob: 6cd46748205e8f41492d84afe08c9d452369a154 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From 779e05a0e93c5432deaa714aaea7ae17a950f6fc Mon Sep 17 00:00:00 2001
From: Shaun McCance <shaunm@gnome.org>
Date: Tue, 18 May 2010 15:23:09 +0000
Subject: [src/yelp-window.c] Fix "Open Link in New Window", bug #615457 (Edward Sheldrake)

---
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... */
--
cgit v0.8.3.1