diff options
Diffstat (limited to 'st.c')
-rw-r--r-- | st.c | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -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(); } |