Fix selection: selscroll

master
Jakub Leszczak 2020-05-06 13:36:59 +02:00 committed by Hiltjo Posthuma
parent 9c30066e73
commit 045a0fab4f
1 changed files with 8 additions and 18 deletions

26
st.c
View File

@ -1106,27 +1106,17 @@ selscroll(int orig, int n)
if (sel.ob.x == -1) if (sel.ob.x == -1)
return; return;
if (BETWEEN(sel.ob.y, orig, term.bot) || BETWEEN(sel.oe.y, orig, term.bot)) { if (BETWEEN(sel.nb.y, orig, term.bot) != BETWEEN(sel.ne.y, orig, term.bot)) {
if ((sel.ob.y += n) > term.bot || (sel.oe.y += n) < term.top) { selclear();
} else if (BETWEEN(sel.nb.y, orig, term.bot)) {
sel.ob.y += n;
sel.oe.y += n;
if (sel.ob.y < term.top || sel.ob.y > term.bot ||
sel.oe.y < term.top || sel.oe.y > term.bot) {
selclear(); selclear();
return;
}
if (sel.type == SEL_RECTANGULAR) {
if (sel.ob.y < term.top)
sel.ob.y = term.top;
if (sel.oe.y > term.bot)
sel.oe.y = term.bot;
} else { } else {
if (sel.ob.y < term.top) { selnormalize();
sel.ob.y = term.top;
sel.ob.x = 0;
}
if (sel.oe.y > term.bot) {
sel.oe.y = term.bot;
sel.oe.x = term.col;
}
} }
selnormalize();
} }
} }