aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/macterm.c34
1 files changed, 28 insertions, 6 deletions
diff --git a/src/macterm.c b/src/macterm.c
index fc65c4dab69..69c1840149c 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -1143,6 +1143,9 @@ x_update_window_end (w, cursor_on_p, mouse_face_overwritten_p)
1143 output_cursor.x, output_cursor.y); 1143 output_cursor.x, output_cursor.y);
1144 1144
1145 x_draw_vertical_border (w); 1145 x_draw_vertical_border (w);
1146
1147 draw_window_fringes (w);
1148
1146 UNBLOCK_INPUT; 1149 UNBLOCK_INPUT;
1147 } 1150 }
1148 1151
@@ -1239,11 +1242,7 @@ x_after_update_window_line (desired_row)
1239 xassert (w); 1242 xassert (w);
1240 1243
1241 if (!desired_row->mode_line_p && !w->pseudo_window_p) 1244 if (!desired_row->mode_line_p && !w->pseudo_window_p)
1242 { 1245 desired_row->redraw_fringe_bitmaps_p = 1;
1243 BLOCK_INPUT;
1244 draw_row_fringe_bitmaps (w, desired_row);
1245 UNBLOCK_INPUT;
1246 }
1247 1246
1248 /* When a window has disappeared, make sure that no rest of 1247 /* When a window has disappeared, make sure that no rest of
1249 full-width rows stays visible in the internal border. Could 1248 full-width rows stays visible in the internal border. Could
@@ -1295,9 +1294,24 @@ x_draw_fringe_bitmap (w, row, p)
1295 XGCValues gcv; 1294 XGCValues gcv;
1296 GC gc = f->output_data.mac->normal_gc; 1295 GC gc = f->output_data.mac->normal_gc;
1297 struct face *face = p->face; 1296 struct face *face = p->face;
1297 int rowY;
1298 1298
1299 /* Must clip because of partially visible lines. */ 1299 /* Must clip because of partially visible lines. */
1300 x_clip_to_row (w, row, gc); 1300 rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
1301 if (p->y < rowY)
1302 {
1303 /* Adjust position of "bottom aligned" bitmap on partially
1304 visible last row. */
1305 int oldY = row->y;
1306 int oldVH = row->visible_height;
1307 row->visible_height = p->h;
1308 row->y -= rowY - p->y;
1309 x_clip_to_row (w, row, gc);
1310 row->y = oldY;
1311 row->visible_height = oldVH;
1312 }
1313 else
1314 x_clip_to_row (w, row, gc);
1301 1315
1302 if (p->bx >= 0) 1316 if (p->bx >= 0)
1303 { 1317 {
@@ -4546,6 +4560,14 @@ mac_draw_window_cursor (w, glyph_row, x, y, cursor_type, cursor_width, on_p, act
4546 w->phys_cursor_width = cursor_width; 4560 w->phys_cursor_width = cursor_width;
4547 w->phys_cursor_on_p = 1; 4561 w->phys_cursor_on_p = 1;
4548 4562
4563 if (glyph_row->exact_window_width_line_p
4564 && w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA])
4565 {
4566 glyph_row->cursor_in_fringe_p = 1;
4567 draw_fringe_bitmap (w, glyph_row, 0);
4568 return;
4569 }
4570
4549 switch (cursor_type) 4571 switch (cursor_type)
4550 { 4572 {
4551 case HOLLOW_BOX_CURSOR: 4573 case HOLLOW_BOX_CURSOR: