… | |
… | |
126 | width = ncol; |
126 | width = ncol; |
127 | } |
127 | } |
128 | |
128 | |
129 | l.touch (); |
129 | l.touch (); |
130 | |
130 | |
131 | efs &= ~RS_baseattrMask; |
131 | efs &= ~RS_baseattrMask; // remove italic etc. fontstyles |
132 | efs = SET_FONT (efs, FONTSET (efs)->find_font (' ')); |
132 | efs = SET_FONT (efs, FONTSET (efs)->find_font (' ')); |
133 | |
133 | |
134 | text_t *et = l.t + col; |
134 | text_t *et = l.t + col; |
135 | rend_t *er = l.r + col; |
135 | rend_t *er = l.r + col; |
136 | |
136 | |
… | |
… | |
640 | l.touch (); |
640 | l.touch (); |
641 | } |
641 | } |
642 | |
642 | |
643 | // erase newly scrolled-in lines |
643 | // erase newly scrolled-in lines |
644 | for (int i = count; i--; ) |
644 | for (int i = count; i--; ) |
|
|
645 | { |
|
|
646 | line_t &l = ROW(nrow - 1 - i); |
|
|
647 | |
|
|
648 | // optimize if already cleared, can be significant on slow machines |
|
|
649 | // could be rolled into scr_blank_screen_mem |
|
|
650 | if (l.r && l.l < ncol - 1 && !((l.r[l.l + 1] ^ rstyle) & RS_bgMask)) |
|
|
651 | { |
|
|
652 | scr_blank_line (l, 0, l.l, rstyle); |
|
|
653 | l.l = 0; |
|
|
654 | l.f = 0; |
|
|
655 | } |
|
|
656 | else |
645 | scr_blank_screen_mem (ROW(nrow - 1 - i), rstyle); |
657 | scr_blank_screen_mem (l, rstyle); |
|
|
658 | } |
646 | |
659 | |
647 | // now copy lines below the scroll region bottom to the |
660 | // now copy lines below the scroll region bottom to the |
648 | // bottom of the screen again, so they look as if they |
661 | // bottom of the screen again, so they look as if they |
649 | // hadn't moved. |
662 | // hadn't moved. |
650 | for (int i = nrow; --i > row2; ) |
663 | for (int i = nrow; --i > row2; ) |