aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2021-11-15 09:27:31 +0800
committerPo Lu2021-11-15 09:27:31 +0800
commitd9e91da7690a7872a27d9fcb652a170d84e4d891 (patch)
tree78529f73f901e4700cc8f8a6ce9d472323b17fbb /src
parent364cf2494c9b94e1d265b637394c80c4eecfb505 (diff)
downloademacs-d9e91da7690a7872a27d9fcb652a170d84e4d891.tar.gz
emacs-d9e91da7690a7872a27d9fcb652a170d84e4d891.zip
Stop assuming xwidget views will only be displayed in TEXT_AREA
* 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.
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c2
-rw-r--r--src/xwidget.c4
-rw-r--r--src/xwidget.h2
3 files changed, 6 insertions, 2 deletions
diff --git a/src/xterm.c b/src/xterm.c
index fd498c0e32b..5988d3a15fb 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -4439,7 +4439,7 @@ x_scroll_run (struct window *w, struct run *run)
4439 int text_area_x, text_area_y, text_area_width, text_area_height; 4439 int text_area_x, text_area_y, text_area_width, text_area_height;
4440 int clip_top, clip_bottom; 4440 int clip_top, clip_bottom;
4441 4441
4442 window_box (w, TEXT_AREA, &text_area_x, &text_area_y, 4442 window_box (w, view->area, &text_area_x, &text_area_y,
4443 &text_area_width, &text_area_height); 4443 &text_area_width, &text_area_height);
4444 4444
4445 view->y = y; 4445 view->y = y;
diff --git a/src/xwidget.c b/src/xwidget.c
index 0e8bf13715f..48927524320 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -1631,7 +1631,9 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
1631 } 1631 }
1632#endif 1632#endif
1633 1633
1634 window_box (s->w, TEXT_AREA, &text_area_x, &text_area_y, 1634 xv->area = s->area;
1635
1636 window_box (s->w, xv->area, &text_area_x, &text_area_y,
1635 &text_area_width, &text_area_height); 1637 &text_area_width, &text_area_height);
1636 1638
1637 clip_left = max (0, text_area_x - x); 1639 clip_left = max (0, text_area_x - x);
diff --git a/src/xwidget.h b/src/xwidget.h
index 4377b50e840..df55dacffef 100644
--- a/src/xwidget.h
+++ b/src/xwidget.h
@@ -104,6 +104,8 @@ struct xwidget_view
104 /* The "live" instance isn't drawn. */ 104 /* The "live" instance isn't drawn. */
105 bool hidden; 105 bool hidden;
106 106
107 enum glyph_row_area area;
108
107#if defined (USE_GTK) 109#if defined (USE_GTK)
108 Display *dpy; 110 Display *dpy;
109 Window wdesc; 111 Window wdesc;