Fix y offset of mouse if status at top. GitHub issue 4738 from Michael

Grant.
This commit is contained in:
nicm
2025-12-04 14:45:32 +00:00
committed by Nicholas Marriott
parent 2fc123cf4a
commit ff207eb583
3 changed files with 11 additions and 2 deletions

View File

@@ -1028,6 +1028,11 @@ screen_redraw_draw_scrollbar(struct screen_redraw_ctx *ctx,
int sx = ctx->sx, sy = ctx->sy, xoff = wp->xoff; int sx = ctx->sx, sy = ctx->sy, xoff = wp->xoff;
int yoff = wp->yoff; int yoff = wp->yoff;
if (ctx->statustop) {
sb_y += ctx->statuslines;
sy += ctx->statuslines;
}
/* Set up style for slider. */ /* Set up style for slider. */
gc = sb_style->gc; gc = sb_style->gc;
memcpy(&slgc, &gc, sizeof slgc); memcpy(&slgc, &gc, sizeof slgc);

View File

@@ -1271,7 +1271,11 @@ have_event:
if (c->tty.mouse_scrolling_flag == 0 && if (c->tty.mouse_scrolling_flag == 0 &&
where == SCROLLBAR_SLIDER) { where == SCROLLBAR_SLIDER) {
c->tty.mouse_scrolling_flag = 1; c->tty.mouse_scrolling_flag = 1;
c->tty.mouse_slider_mpos = sl_mpos; if (m->statusat == 0) {
c->tty.mouse_slider_mpos = sl_mpos +
m->statuslines;
} else
c->tty.mouse_slider_mpos = sl_mpos;
} }
break; break;
case WHEEL: case WHEEL:

View File

@@ -627,7 +627,7 @@ window_copy_scroll1(struct window_mode_entry *wme, struct window_pane *wp,
new_slider_y = sb_top - wp->yoff + (sb_height - slider_height); new_slider_y = sb_top - wp->yoff + (sb_height - slider_height);
} else { } else {
/* Slider is somewhere in the middle. */ /* Slider is somewhere in the middle. */
new_slider_y = my - wp->yoff - sl_mpos + 1; new_slider_y = my - wp->yoff - sl_mpos;
} }
if (TAILQ_FIRST(&wp->modes) == NULL || if (TAILQ_FIRST(&wp->modes) == NULL ||