about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2025-01-29 19:10:53 +0100
committerbptato <nincsnevem662@gmail.com>2025-01-29 19:18:05 +0100
commit95cafdfbed807053325cdf08027e45256356106f (patch)
tree2367ca8824375419e23673f084f0ce8b17391215 /src
parentccc48b4adc98538d57f886a95785f6c9dc3fda95 (diff)
downloadchawan-95cafdfbed807053325cdf08027e45256356106f.tar.gz
pager: fix gotoAnchor on buffers that were redirected
Redirection no longer preserves the previous cursor position, so
gotoAnchor is now allowed to override it.
Diffstat (limited to 'src')
-rw-r--r--src/local/pager.nim7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/local/pager.nim b/src/local/pager.nim
index e79869a0..2132b6a2 100644
--- a/src/local/pager.nim
+++ b/src/local/pager.nim
@@ -1924,7 +1924,6 @@ proc gotoURL(pager: Pager; request: Request; prevurl = none(URL);
       else:
         container.replaceBackup = replaceBackup
         replaceBackup.replaceRef = container
-      container.copyCursorPos(replace)
     else:
       pager.addContainer(container)
     inc pager.numload
@@ -2296,8 +2295,10 @@ proc jsGotoURL(pager: Pager; v: JSValue; t = GotoURLDict()): JSResult[void]
 
 # Reload the page in a new buffer, then kill the previous buffer.
 proc reload(pager: Pager) {.jsfunc.} =
-  discard pager.gotoURL(newRequest(pager.container.url), none(URL),
-    pager.container.contentType, replace = pager.container)
+  let old = pager.container
+  let container = pager.gotoURL(newRequest(pager.container.url), none(URL),
+    pager.container.contentType, replace = old)
+  container.copyCursorPos(old)
 
 type ExternDict = object of JSDict
   env {.jsdefault: JS_UNDEFINED.}: JSValue