From: simon Date: Tue, 18 Sep 2001 18:59:37 +0000 (+0000) Subject: Selection point movement on scroll should move selanchor as well as X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/commitdiff_plain/d48db8b432f25d046b106e41a3ef9869fe9562b8 Selection point movement on scroll should move selanchor as well as selstart and selend, otherwise all those worthy ideals go *foom* while the mouse buttons are held down. git-svn-id: svn://svn.tartarus.org/sgt/putty@1274 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/terminal.c b/terminal.c index ab97e3c4..f238f09e 100644 --- a/terminal.c +++ b/terminal.c @@ -668,6 +668,10 @@ static void scroll(int topline, int botline, int lines, int sb) * of course, if the line _hasn't_ moved into the * scrollback then we don't do this, and cut them off * at the top of the scroll region. + * + * This applies to selstart and selend (for an existing + * selection), and also selanchor (for one being + * selected as we speak). */ seltop = sb ? -savelines : 0; @@ -685,6 +689,13 @@ static void scroll(int topline, int botline, int lines, int sb) selend.x = 0; } } + if (selanchor.y >= seltop && selanchor.y <= botline) { + selanchor.y--; + if (selanchor.y < seltop) { + selanchor.y = seltop; + selanchor.x = 0; + } + } lines--; }