aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2023-02-23 21:38:41 +0800
committerPo Lu2023-02-23 21:38:41 +0800
commite3595debd0c7e2c82a71c272eb8b6729ba426023 (patch)
tree0fff7d0bd003b62ca4c2b2f6c751fcc3f173cc4b /src
parent351813556da2dc04ae5cc639d5ddebdf8edf4f5e (diff)
parentfad3665069740e002fcb7f9313f9eeec81ad9a0c (diff)
downloademacs-e3595debd0c7e2c82a71c272eb8b6729ba426023.tar.gz
emacs-e3595debd0c7e2c82a71c272eb8b6729ba426023.zip
Merge remote-tracking branch 'origin/master' into feature/android
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c10
-rw-r--r--src/xterm.c6
2 files changed, 11 insertions, 5 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 879ce4ca8b2..e32b0dc5166 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -3498,18 +3498,18 @@ init_iterator (struct it *it, struct window *w,
3498static int 3498static int
3499get_narrowed_width (struct window *w) 3499get_narrowed_width (struct window *w)
3500{ 3500{
3501 int fact;
3502 /* In a character-only terminal, only one font size is used, so we 3501 /* In a character-only terminal, only one font size is used, so we
3503 can use a smaller factor. */ 3502 can use a smaller factor. */
3504 fact = EQ (Fterminal_live_p (Qnil), Qt) ? 2 : 3; 3503 int fact = EQ (Fterminal_live_p (Qnil), Qt) ? 2 : 3;
3505 return fact * window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS); 3504 int width = window_body_width (w, WINDOW_BODY_IN_CANONICAL_CHARS);
3505 return fact * max (1, width);
3506} 3506}
3507 3507
3508static int 3508static int
3509get_narrowed_len (struct window *w) 3509get_narrowed_len (struct window *w)
3510{ 3510{
3511 return get_narrowed_width (w) * 3511 int height = window_body_height (w, WINDOW_BODY_IN_CANONICAL_CHARS);
3512 window_body_height (w, WINDOW_BODY_IN_CANONICAL_CHARS); 3512 return get_narrowed_width (w) * max (1, height);
3513} 3513}
3514 3514
3515ptrdiff_t 3515ptrdiff_t
diff --git a/src/xterm.c b/src/xterm.c
index 49b88de2759..e191f7a6a77 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -5950,8 +5950,10 @@ void
5950x_end_cr_clip (struct frame *f) 5950x_end_cr_clip (struct frame *f)
5951{ 5951{
5952 cairo_restore (FRAME_CR_CONTEXT (f)); 5952 cairo_restore (FRAME_CR_CONTEXT (f));
5953#ifdef HAVE_XDBE
5953 if (FRAME_X_DOUBLE_BUFFERED_P (f)) 5954 if (FRAME_X_DOUBLE_BUFFERED_P (f))
5954 x_mark_frame_dirty (f); 5955 x_mark_frame_dirty (f);
5956#endif
5955} 5957}
5956 5958
5957void 5959void
@@ -7486,8 +7488,10 @@ x_update_end (struct frame *f)
7486 MOUSE_HL_INFO (f)->mouse_face_defer = false; 7488 MOUSE_HL_INFO (f)->mouse_face_defer = false;
7487 7489
7488#ifdef USE_CAIRO 7490#ifdef USE_CAIRO
7491# ifdef HAVE_XDBE
7489 if (!FRAME_X_DOUBLE_BUFFERED_P (f) && FRAME_CR_CONTEXT (f)) 7492 if (!FRAME_X_DOUBLE_BUFFERED_P (f) && FRAME_CR_CONTEXT (f))
7490 cairo_surface_flush (cairo_get_target (FRAME_CR_CONTEXT (f))); 7493 cairo_surface_flush (cairo_get_target (FRAME_CR_CONTEXT (f)));
7494# endif
7491#endif 7495#endif
7492 7496
7493 /* If double buffering is disabled, finish the update here. 7497 /* If double buffering is disabled, finish the update here.
@@ -21159,8 +21163,10 @@ handle_one_xevent (struct x_display_info *dpyinfo,
21159 x_flush (WINDOW_XFRAME (XWINDOW (bar->window))); 21163 x_flush (WINDOW_XFRAME (XWINDOW (bar->window)));
21160 } 21164 }
21161 21165
21166#ifdef HAVE_XDBE
21162 if (f && FRAME_X_DOUBLE_BUFFERED_P (f)) 21167 if (f && FRAME_X_DOUBLE_BUFFERED_P (f))
21163 x_drop_xrender_surfaces (f); 21168 x_drop_xrender_surfaces (f);
21169#endif
21164 21170
21165 goto OTHER; 21171 goto OTHER;
21166 } 21172 }