]> git.eshelyaron.com Git - emacs.git/commitdiff
Stop assuming xwidget views will only be displayed in TEXT_AREA
authorPo Lu <luangruo@yahoo.com>
Mon, 15 Nov 2021 01:27:31 +0000 (09:27 +0800)
committerPo Lu <luangruo@yahoo.com>
Mon, 15 Nov 2021 01:27:31 +0000 (09:27 +0800)
* src/xterm.c (x_scroll_run): Use view->area when calculating
xwidget view clipping.

* src/xwidget.c (x_draw_xwidget_glyph_string): Set view->area
to s->area and use that instead.

* src/xwidget.h (struct xwidget_view): Add glyph row area field.

src/xterm.c
src/xwidget.c
src/xwidget.h

index fd498c0e32bce9033dbcea871aad5642d47a731b..5988d3a15fbce5c76c6951eaa7b014bdb6ed5b8c 100644 (file)
@@ -4439,7 +4439,7 @@ x_scroll_run (struct window *w, struct run *run)
                  int text_area_x, text_area_y, text_area_width, text_area_height;
                  int clip_top, clip_bottom;
 
-                 window_box (w, TEXT_AREA, &text_area_x, &text_area_y,
+                 window_box (w, view->area, &text_area_x, &text_area_y,
                              &text_area_width, &text_area_height);
 
                  view->y = y;
index 0e8bf13715f770ce66845d7d2cd6c79156dfd31d..48927524320d63a75ad123e6542972a7826b48ce 100644 (file)
@@ -1631,7 +1631,9 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
     }
 #endif
 
-  window_box (s->w, TEXT_AREA, &text_area_x, &text_area_y,
+  xv->area = s->area;
+
+  window_box (s->w, xv->area, &text_area_x, &text_area_y,
               &text_area_width, &text_area_height);
 
   clip_left = max (0, text_area_x - x);
index 4377b50e840361cb8887d3e256441b47a63ae6d5..df55dacffefb08941f22d9526bc93f5d9f586c24 100644 (file)
@@ -104,6 +104,8 @@ struct xwidget_view
   /* The "live" instance isn't drawn.  */
   bool hidden;
 
+  enum glyph_row_area area;
+
 #if defined (USE_GTK)
   Display *dpy;
   Window wdesc;