aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim F. Storm2004-01-16 18:47:40 +0000
committerKim F. Storm2004-01-16 18:47:40 +0000
commit3c0882ae5c592d8466d8bdcc02f2cd143be60e4b (patch)
tree0dc3c9e88d627b8345bb2eb44a54a3416cc3dacc
parent88e6b646f55d848aca98e295cde3dcfb4b9f5101 (diff)
downloademacs-3c0882ae5c592d8466d8bdcc02f2cd143be60e4b.tar.gz
emacs-3c0882ae5c592d8466d8bdcc02f2cd143be60e4b.zip
(x_update_window_end): Call draw_window_fringes.
(x_after_update_window_line): Just set redraw_fringe_bitmaps_p in row instead of actually drawing fringe bitmaps. (x_draw_fringe_bitmap): Handle bottom aligned bitmaps. (x_draw_window_cursor): Draw cursor in fringe.
-rw-r--r--src/xterm.c33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 2c6cb44d159..f9287036cc5 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -570,6 +570,9 @@ x_update_window_end (w, cursor_on_p, mouse_face_overwritten_p)
570 output_cursor.x, output_cursor.y); 570 output_cursor.x, output_cursor.y);
571 571
572 x_draw_vertical_border (w); 572 x_draw_vertical_border (w);
573
574 draw_window_fringes (w);
575
573 UNBLOCK_INPUT; 576 UNBLOCK_INPUT;
574 } 577 }
575 578
@@ -649,11 +652,7 @@ x_after_update_window_line (desired_row)
649 xassert (w); 652 xassert (w);
650 653
651 if (!desired_row->mode_line_p && !w->pseudo_window_p) 654 if (!desired_row->mode_line_p && !w->pseudo_window_p)
652 { 655 desired_row->redraw_fringe_bitmaps_p = 1;
653 BLOCK_INPUT;
654 draw_row_fringe_bitmaps (w, desired_row);
655 UNBLOCK_INPUT;
656 }
657 656
658 /* When a window has disappeared, make sure that no rest of 657 /* When a window has disappeared, make sure that no rest of
659 full-width rows stays visible in the internal border. Could 658 full-width rows stays visible in the internal border. Could
@@ -697,9 +696,24 @@ x_draw_fringe_bitmap (w, row, p)
697 Window window = FRAME_X_WINDOW (f); 696 Window window = FRAME_X_WINDOW (f);
698 GC gc = f->output_data.x->normal_gc; 697 GC gc = f->output_data.x->normal_gc;
699 struct face *face = p->face; 698 struct face *face = p->face;
699 int rowY;
700 700
701 /* Must clip because of partially visible lines. */ 701 /* Must clip because of partially visible lines. */
702 x_clip_to_row (w, row, gc); 702 rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
703 if (p->y < rowY)
704 {
705 /* Adjust position of "bottom aligned" bitmap on partially
706 visible last row. */
707 int oldY = row->y;
708 int oldVH = row->visible_height;
709 row->visible_height = p->h;
710 row->y -= rowY - p->y;
711 x_clip_to_row (w, row, gc);
712 row->y = oldY;
713 row->visible_height = oldVH;
714 }
715 else
716 x_clip_to_row (w, row, gc);
703 717
704 if (p->bx >= 0) 718 if (p->bx >= 0)
705 { 719 {
@@ -7448,6 +7462,13 @@ x_draw_window_cursor (w, glyph_row, x, y, cursor_type, cursor_width, on_p, activ
7448 w->phys_cursor_type = cursor_type; 7462 w->phys_cursor_type = cursor_type;
7449 w->phys_cursor_on_p = 1; 7463 w->phys_cursor_on_p = 1;
7450 7464
7465 if (glyph_row->exact_window_width_line_p
7466 && w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA])
7467 {
7468 glyph_row->cursor_in_fringe_p = 1;
7469 draw_fringe_bitmap (w, glyph_row, 0);
7470 }
7471 else
7451 switch (cursor_type) 7472 switch (cursor_type)
7452 { 7473 {
7453 case HOLLOW_BOX_CURSOR: 7474 case HOLLOW_BOX_CURSOR: