X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/d7aff0d6929c16d15992304dd44c5f528df8f895..2fdec80c2cebf486bc708c5a59b0cd52def5285b:/src/fringe.c diff --git a/src/fringe.c b/src/fringe.c index 9c77e6557f..5561a596a9 100644 --- a/src/fringe.c +++ b/src/fringe.c @@ -1,5 +1,5 @@ /* Fringe handling (split from xdisp.c). - Copyright (C) 1985-1988, 1993-1995, 1997-2013 Free Software + Copyright (C) 1985-1988, 1993-1995, 1997-2015 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -83,7 +83,7 @@ struct fringe_bitmap unsigned width : 8; unsigned period : 8; unsigned align : 2; - unsigned dynamic : 1; + bool_bf dynamic : 1; }; @@ -659,6 +659,10 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o { /* If W has a vertical border to its left, don't draw over it. */ wd -= ((!WINDOW_LEFTMOST_P (w) + /* This could be wrong when we allow window local + right dividers - but the window on the left is hard + to get. */ + && !FRAME_RIGHT_DIVIDER_WIDTH (f) && !WINDOW_HAS_VERTICAL_SCROLL_BAR (w) /* But don't reduce the fringe width if the window has a left margin, because that means we are not @@ -691,7 +695,9 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o } } - FRAME_RIF (f)->draw_fringe_bitmap (w, row, &p); + if (p.x >= WINDOW_BOX_LEFT_EDGE_X (w) + && (p.x + p.wd) <= WINDOW_BOX_LEFT_EDGE_X (w) + WINDOW_PIXEL_WIDTH (w)) + FRAME_RIF (f)->draw_fringe_bitmap (w, row, &p); } static int @@ -1660,7 +1666,7 @@ If BITMAP already exists, the existing definition is replaced. */) Fput (bitmap, Qfringe, make_number (n)); } - fb.dynamic = 1; + fb.dynamic = true; xfb = xmalloc (sizeof fb + fb.height * BYTES_PER_BITMAP_ROW); fb.bits = b = (unsigned short *) (xfb + 1);