mirror of
https://github.com/tmux/tmux.git
synced 2026-10-09 19:54:22 +00:00
Fix collapsed copy mode on resize and with the cursor below the output.
Rebuilding the folded view wrote a linefeed for every source line, including the blank lines at the end, so shrinking the window scrolled the collapsed output into history. Stop at the last non-blank line and rebuild a folded view at the new size when the window is resized. When no cursor position could be restored, the fallback used the source row, which can be past the bottom of the shorter folded view and was then used to index the grid. Fall back to the nearest visible line and clamp to the screen. Keep the unfolded source only while fold view is on, so plain copy mode is back to the incremental sync with one copy of the history. Document toggle-output -m, and rename struct input_osc_133_ctx to struct osc133_marker. Line numbers started with L stay absolute when fold view is toggled. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
6
input.c
6
input.c
@@ -3194,13 +3194,13 @@ input_osc_112(struct input_ctx *ictx, const char *p)
|
||||
}
|
||||
|
||||
/* Save the running command's output start before clearing the screen. */
|
||||
struct input_osc_133_ctx
|
||||
struct osc133_marker
|
||||
input_osc_133_save_marker(struct window_pane *wp, struct screen *s)
|
||||
{
|
||||
struct grid *gd = s->grid;
|
||||
struct grid_line *gl;
|
||||
struct osc133_data *od;
|
||||
struct input_osc_133_ctx ctx = {0};
|
||||
struct osc133_marker ctx = {0};
|
||||
u_int y;
|
||||
|
||||
if (wp == NULL)
|
||||
@@ -3241,7 +3241,7 @@ input_osc_133_save_marker(struct window_pane *wp, struct screen *s)
|
||||
/* Restore the running command's output start if a screen clear removed it. */
|
||||
void
|
||||
input_osc_133_restore_marker(struct screen *s,
|
||||
const struct input_osc_133_ctx *ctx)
|
||||
const struct osc133_marker *ctx)
|
||||
{
|
||||
struct grid *gd = s->grid;
|
||||
struct grid_line *gl;
|
||||
|
||||
Reference in New Issue
Block a user