From: Po Lu Date: Fri, 4 Mar 2022 01:13:08 +0000 (+0800) Subject: Fix display of stretch glyphs when hscrolled on PGTK X-Git-Tag: emacs-29.0.90~2028 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4df7bb9c0112007d321815d00c9dca8b44b4c9b7;p=emacs.git Fix display of stretch glyphs when hscrolled on PGTK * pgtkterm.c (x_draw_stretch_glyph_string): Use correct box dimensions. --- diff --git a/src/pgtkterm.c b/src/pgtkterm.c index ce167fdac2f..41e2f0ded0e 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -2379,24 +2379,21 @@ x_draw_stretch_glyph_string (struct glyph_string *s) header line and mode line. */ if (x < text_left_x && !s->row->mode_line_p) { - int left_x = WINDOW_LEFT_SCROLL_BAR_AREA_WIDTH (s->w); - int right_x = text_left_x; + int background_width = s->background_width; + int x = s->x, text_left_x = window_box_left (s->w, TEXT_AREA); - if (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (s->w)) - left_x += WINDOW_LEFT_FRINGE_WIDTH (s->w); - else - right_x -= WINDOW_LEFT_FRINGE_WIDTH (s->w); - - /* Adjust X and BACKGROUND_WIDTH to fit inside the space - between LEFT_X and RIGHT_X. */ - if (x < left_x) + /* Don't draw into left fringe or scrollbar area except for + header line and mode line. */ + if (s->area == TEXT_AREA + && x < text_left_x && !s->row->mode_line_p) { - background_width -= left_x - x; - x = left_x; + background_width -= text_left_x - x; + x = text_left_x; } - if (x + background_width > right_x) - background_width = right_x - x; + if (background_width > 0) + x_draw_glyph_string_bg_rect (s, x, s->y, background_width, s->height); } + if (background_width > 0) x_draw_glyph_string_bg_rect (s, x, s->y, background_width, s->height); }