ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/screen.C
(Generate patch)

Comparing rxvt-unicode/src/screen.C (file contents):
Revision 1.323 by root, Tue Nov 4 23:53:29 2008 UTC vs.
Revision 1.325 by root, Wed Nov 5 12:28:15 2008 UTC

158 * ------------------------------------------------------------------------- */ 158 * ------------------------------------------------------------------------- */
159 159
160void 160void
161rxvt_term::scr_reset () 161rxvt_term::scr_reset ()
162{ 162{
163 scr_soft_reset ();
164
165 view_start = 0; 163 view_start = 0;
166 num_scr = 0; 164 num_scr = 0;
167 165
168 if (ncol == 0) 166 if (ncol == 0)
169 ncol = 80; 167 ncol = 80;
280 278
281 if (top_row) 279 if (top_row)
282 { 280 {
283 // Re-wrap lines. This is rather ugly, possibly because I am too dumb 281 // Re-wrap lines. This is rather ugly, possibly because I am too dumb
284 // to come up with a lean and mean algorithm. 282 // to come up with a lean and mean algorithm.
283 // TODO: maybe optimise when width didn't change
285 284
286 row_col_t ocur = screen.cur; 285 row_col_t ocur = screen.cur;
287 ocur.row = MOD (term_start + ocur.row, prev_total_rows); 286 ocur.row = MOD (term_start + ocur.row, prev_total_rows);
288 287
289 do 288 do
436void 435void
437rxvt_term::scr_poweron () 436rxvt_term::scr_poweron ()
438{ 437{
439 scr_release (); 438 scr_release ();
440 prev_nrow = prev_ncol = 0; 439 prev_nrow = prev_ncol = 0;
440 rvideo_mode = false;
441 scr_soft_reset ();
441 scr_reset (); 442 scr_reset ();
442 443
443 scr_clear (true); 444 scr_clear (true);
444 scr_refresh (); 445 scr_refresh ();
445} 446}
449{ 450{
450 /* only affects modes, nothing drastic such as clearing the screen */ 451 /* only affects modes, nothing drastic such as clearing the screen */
451#if ENABLE_OVERLAY 452#if ENABLE_OVERLAY
452 scr_overlay_off (); 453 scr_overlay_off ();
453#endif 454#endif
454
455 rvideo_mode = false;
456 455
457 if (current_screen != PRIMARY) 456 if (current_screen != PRIMARY)
458 scr_swap_screen (); 457 scr_swap_screen ();
459 458
460 free (tabs); 459 free (tabs);
1342 if (row >= nrow) /* Out Of Bounds */ 1341 if (row >= nrow) /* Out Of Bounds */
1343 return; 1342 return;
1344 1343
1345 min_it (num, nrow - row); 1344 min_it (num, nrow - row);
1346 1345
1347 /*TODO: the xlceararea/xfillrectangle below don't take scroll offste into account, ask mikachu for details */ 1346 // TODO: the code below does not work when view_start != 0
1347 // the workaround is to disable the clear and use a normal refresh
1348 // when view_start != 0. mysterious.
1348 if (rstyle & (RS_RVid | RS_Uline)) 1349 if (rstyle & (RS_RVid | RS_Uline))
1349 ren = (rend_t) ~RS_None; 1350 ren = (rend_t) ~RS_None;
1350 else if (GET_BASEBG (rstyle) == Color_bg) 1351 else if (GET_BASEBG (rstyle) == Color_bg)
1351 { 1352 {
1352 ren = DEFAULT_RSTYLE; 1353 ren = DEFAULT_RSTYLE;
1374 } 1375 }
1375 1376
1376 for (; num--; row++) 1377 for (; num--; row++)
1377 { 1378 {
1378 scr_blank_screen_mem (ROW(row), rstyle); 1379 scr_blank_screen_mem (ROW(row), rstyle);
1380
1379 if (!view_start) 1381 if (!view_start)
1380 scr_blank_line (drawn_buf [row], 0, ncol, ren); 1382 scr_blank_line (drawn_buf [row], 0, ncol, ren);
1381 } 1383 }
1382} 1384}
1383 1385
1538 { 1540 {
1539 line->t[col] = line->t[col + count]; 1541 line->t[col] = line->t[col + count];
1540 line->r[col] = line->r[col + count]; 1542 line->r[col] = line->r[col + count];
1541 } 1543 }
1542 1544
1543 scr_blank_line (*line, ncol - count, count, 1545 scr_blank_line (*line, ncol - count, count, rstyle);
1544 line->r[ncol - 1] & (RS_fgMask | RS_bgMask | RS_baseattrMask));
1545 1546
1546 if (selection.op && current_screen == selection.screen 1547 if (selection.op && current_screen == selection.screen
1547 && ROWCOL_IN_ROW_AT_OR_AFTER (selection.beg, screen.cur)) 1548 && ROWCOL_IN_ROW_AT_OR_AFTER (selection.beg, screen.cur))
1548 { 1549 {
1549 if (selection.end.row != screen.cur.row 1550 if (selection.end.row != screen.cur.row

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines