Mercurial > emacs
comparison src/w32term.c @ 53607:4262a032b45b
(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.
(w32_draw_fringe_bitmap): Handle bottom aligned bitmaps.
(w32_draw_window_cursor): Draw cursor in fringe.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Fri, 16 Jan 2004 18:46:47 +0000 |
parents | 112be2022ce0 |
children | e1b1c388f74d 82c3b4da43ca |
comparison
equal
deleted
inserted
replaced
53606:96c29ac603e8 | 53607:4262a032b45b |
---|---|
538 display_and_set_cursor (w, 1, output_cursor.hpos, | 538 display_and_set_cursor (w, 1, output_cursor.hpos, |
539 output_cursor.vpos, | 539 output_cursor.vpos, |
540 output_cursor.x, output_cursor.y); | 540 output_cursor.x, output_cursor.y); |
541 | 541 |
542 x_draw_vertical_border (w); | 542 x_draw_vertical_border (w); |
543 | |
544 draw_window_fringes (w); | |
545 | |
543 UNBLOCK_INPUT; | 546 UNBLOCK_INPUT; |
544 } | 547 } |
545 | 548 |
546 /* If a row with mouse-face was overwritten, arrange for | 549 /* If a row with mouse-face was overwritten, arrange for |
547 XTframe_up_to_date to redisplay the mouse highlight. */ | 550 XTframe_up_to_date to redisplay the mouse highlight. */ |
622 int width, height; | 625 int width, height; |
623 | 626 |
624 xassert (w); | 627 xassert (w); |
625 | 628 |
626 if (!desired_row->mode_line_p && !w->pseudo_window_p) | 629 if (!desired_row->mode_line_p && !w->pseudo_window_p) |
627 { | 630 desired_row->redraw_fringe_bitmaps_p = 1; |
628 BLOCK_INPUT; | |
629 draw_row_fringe_bitmaps (w, desired_row); | |
630 UNBLOCK_INPUT; | |
631 } | |
632 | 631 |
633 /* When a window has disappeared, make sure that no rest of | 632 /* When a window has disappeared, make sure that no rest of |
634 full-width rows stays visible in the internal border. Could | 633 full-width rows stays visible in the internal border. Could |
635 check here if updated_window is the leftmost/rightmost window, | 634 check here if updated_window is the leftmost/rightmost window, |
636 but I guess it's not worth doing since vertically split windows | 635 but I guess it's not worth doing since vertically split windows |
676 struct draw_fringe_bitmap_params *p; | 675 struct draw_fringe_bitmap_params *p; |
677 { | 676 { |
678 struct frame *f = XFRAME (WINDOW_FRAME (w)); | 677 struct frame *f = XFRAME (WINDOW_FRAME (w)); |
679 HDC hdc; | 678 HDC hdc; |
680 struct face *face = p->face; | 679 struct face *face = p->face; |
680 int rowY; | |
681 | 681 |
682 hdc = get_frame_dc (f); | 682 hdc = get_frame_dc (f); |
683 | 683 |
684 /* Must clip because of partially visible lines. */ | 684 /* Must clip because of partially visible lines. */ |
685 w32_clip_to_row (w, row, hdc); | 685 rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); |
686 if (p->y < rowY) | |
687 { | |
688 /* Adjust position of "bottom aligned" bitmap on partially | |
689 visible last row. */ | |
690 int oldY = row->y; | |
691 int oldVH = row->visible_height; | |
692 row->visible_height = p->h; | |
693 row->y -= rowY - p->y; | |
694 w32_clip_to_row (w, row, hdc); | |
695 row->y = oldY; | |
696 row->visible_height = oldVH; | |
697 } | |
698 else | |
699 w32_clip_to_row (w, row, hdc); | |
686 | 700 |
687 if (p->bx >= 0) | 701 if (p->bx >= 0) |
688 { | 702 { |
689 w32_fill_area (f, hdc, face->background, | 703 w32_fill_area (f, hdc, face->background, |
690 p->bx, p->by, p->nx, p->ny); | 704 p->bx, p->by, p->nx, p->ny); |
5119 | 5133 |
5120 /* Move the system caret. */ | 5134 /* Move the system caret. */ |
5121 PostMessage (hwnd, WM_EMACS_TRACK_CARET, 0, 0); | 5135 PostMessage (hwnd, WM_EMACS_TRACK_CARET, 0, 0); |
5122 } | 5136 } |
5123 | 5137 |
5138 if (glyph_row->exact_window_width_line_p | |
5139 && w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA]) | |
5140 { | |
5141 glyph_row->cursor_in_fringe_p = 1; | |
5142 draw_fringe_bitmap (w, glyph_row, 0); | |
5143 return; | |
5144 } | |
5145 | |
5124 switch (cursor_type) | 5146 switch (cursor_type) |
5125 { | 5147 { |
5126 case HOLLOW_BOX_CURSOR: | 5148 case HOLLOW_BOX_CURSOR: |
5127 x_draw_hollow_cursor (w, glyph_row); | 5149 x_draw_hollow_cursor (w, glyph_row); |
5128 break; | 5150 break; |