diff options
| author | Po Lu | 2021-11-15 09:27:31 +0800 |
|---|---|---|
| committer | Po Lu | 2021-11-15 09:27:31 +0800 |
| commit | d9e91da7690a7872a27d9fcb652a170d84e4d891 (patch) | |
| tree | 78529f73f901e4700cc8f8a6ce9d472323b17fbb /src | |
| parent | 364cf2494c9b94e1d265b637394c80c4eecfb505 (diff) | |
| download | emacs-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.c | 2 | ||||
| -rw-r--r-- | src/xwidget.c | 4 | ||||
| -rw-r--r-- | src/xwidget.h | 2 |
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; |