X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=st.c;h=4bf637887cbb40392afbf06ae28c074d1349391d;hb=a5dc1b46976b2252f9d7bb68f126c4b0f351dd1a;hp=504239ea6ac121ec512a4e738e72b916a828015e;hpb=88d8293fb4ba150a5f19d58d133b5db93d9dcfa5;p=st.git diff --git a/st.c b/st.c index 504239e..4bf6378 100644 --- a/st.c +++ b/st.c @@ -2544,10 +2544,23 @@ drawregion(int x1, int y1, int x2, int y2) void draw(void) { + int cx = term.c.x; + if (!xstartdraw()) return; + + /* adjust cursor position */ + LIMIT(term.ocx, 0, term.col-1); + LIMIT(term.ocy, 0, term.row-1); + if (term.line[term.ocy][term.ocx].mode & ATTR_WDUMMY) + term.ocx--; + if (term.line[term.c.y][cx].mode & ATTR_WDUMMY) + cx--; + drawregion(0, 0, term.col, term.row); - xdrawcursor(); + xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], + term.ocx, term.ocy, term.line[term.ocy][term.ocx]); + term.ocx = cx, term.ocy = term.c.y; xfinishdraw(); }