aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mode-tree.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/mode-tree.c b/mode-tree.c
index 4e11a3b4..fc31592a 100644
--- a/mode-tree.c
+++ b/mode-tree.c
@@ -870,6 +870,15 @@ mode_tree_key(struct mode_tree_data *mtd, struct client *c, key_code *key,
case 'v':
mtd->preview = !mtd->preview;
mode_tree_build(mtd);
+
+ /*
+ * If the current line would now be off screen now the preview
+ * is on, reset the the offset to the last visible line.
+ */
+ if (mtd->preview && mtd->current > mtd->height - 1) {
+ mtd->offset = mtd->current - mtd->height;
+ mtd->current--;
+ }
break;
}
return (0);