diff options
author | 2017-11-13 11:49:11 +0000 | |
---|---|---|
committer | 2017-11-13 11:49:11 +0000 | |
commit | b23ea93044a84fbfe30789512722b4b7c8edd2a7 (patch) | |
tree | 2fcbea442afb2b18e6a6e5fbee31a9a75fe53ad7 | |
parent | add a generic packet rate matching filter. allows things like (diff) | |
download | wireguard-openbsd-b23ea93044a84fbfe30789512722b4b7c8edd2a7.tar.xz wireguard-openbsd-b23ea93044a84fbfe30789512722b4b7c8edd2a7.zip |
When searching in copy mode, do not scroll if the result is already on
screen. GitHub issue 1150.
-rw-r--r-- | usr.bin/tmux/window-copy.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/usr.bin/tmux/window-copy.c b/usr.bin/tmux/window-copy.c index 87275afb60b..8f1379b2e60 100644 --- a/usr.bin/tmux/window-copy.c +++ b/usr.bin/tmux/window-copy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-copy.c,v 1.184 2017/09/13 07:31:07 nicm Exp $ */ +/* $OpenBSD: window-copy.c,v 1.185 2017/11/13 11:49:11 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> @@ -955,18 +955,22 @@ window_copy_scroll_to(struct window_pane *wp, u_int px, u_int py) data->cx = px; - gap = gd->sy / 4; - if (py < gd->sy) { - offset = 0; - data->cy = py; - } else if (py > gd->hsize + gd->sy - gap) { - offset = gd->hsize; - data->cy = py - gd->hsize; - } else { - offset = py + gap - gd->sy; - data->cy = py - offset; + if (py >= gd->hsize - data->oy && py < gd->hsize - data->oy + gd->sy) + data->cy = py - (gd->hsize - data->oy); + else { + gap = gd->sy / 4; + if (py < gd->sy) { + offset = 0; + data->cy = py; + } else if (py > gd->hsize + gd->sy - gap) { + offset = gd->hsize; + data->cy = py - gd->hsize; + } else { + offset = py + gap - gd->sy; + data->cy = py - offset; + } + data->oy = gd->hsize - offset; } - data->oy = gd->hsize - offset; window_copy_update_selection(wp, 1); window_copy_redraw_screen(wp); |