=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-copy.c,v retrieving revision 1.184 retrieving revision 1.185 diff -u -r1.184 -r1.185 --- src/usr.bin/tmux/window-copy.c 2017/09/13 07:31:07 1.184 +++ src/usr.bin/tmux/window-copy.c 2017/11/13 11:49:11 1.185 @@ -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 @@ -955,18 +955,22 @@ 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);