]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix display of stretch glyphs when hscrolled on PGTK
authorPo Lu <luangruo@yahoo.com>
Fri, 4 Mar 2022 01:13:08 +0000 (09:13 +0800)
committerPo Lu <luangruo@yahoo.com>
Fri, 4 Mar 2022 01:13:08 +0000 (09:13 +0800)
* pgtkterm.c (x_draw_stretch_glyph_string): Use correct box
dimensions.

src/pgtkterm.c

index ce167fdac2f58807d154708831514c9fd61ad319..41e2f0ded0e302732e117cd9f2c8f5cb779383ba 100644 (file)
@@ -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);
     }