diff options
Diffstat (limited to 'src/File.zig')
| -rw-r--r-- | src/File.zig | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/File.zig b/src/File.zig index 929e33bf..6a1ac319 100644 --- a/src/File.zig +++ b/src/File.zig @@ -814,6 +814,14 @@ pub fn restore(p: *Pardes, id: usize, src: dump.Pane) !*Pane { pane.file.?.tree_context = saved.tree_context and supportsContext(pane); pane.body.cur_pinned = true; pane.body.cur_row = @intCast(src.scroll); + // Its dot as it was, where the view the dump kept shows it. + if (saved.dot) |dot| if (dot[0] <= dot[1] and dot[1] <= content.len) { + const a = modal.positionAt(content, dot[0]); + const h = modal.positionAt(content, if (dot[1] > dot[0]) modal.prevGrapheme(content, dot[1]) else dot[0]); + pane.body.vsel = .{ .active = dot[1] > dot[0], .row = @intCast(a.row), .col = @intCast(a.col), .explicit = true }; + pane.body.cur_row = @intCast(h.row); + pane.body.cur_col = @intCast(h.col); + }; pane.cols = @max(1, src.cols); pane.rows = @max(1, src.rows); if (output == null and filesystem.localPath(path) != null) p.emit(.{ .watch = .{ .pane = @intCast(id), .on = true, .mode = .baseline_disk } }); |
