From: Eli Zaretskii Date: Thu, 21 Jul 2022 07:12:03 +0000 (+0300) Subject: Make sure we don't unknowingly truncate tooltip text X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~16^2~1886^2~828 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=46052d1dcbf5beb24cc68195006f958b2d0dbe27;p=emacs.git Make sure we don't unknowingly truncate tooltip text * src/w32fns.c (Fx_show_tip): Add assertion when the default tooltip dimension limits are insufficient. (Bug#56561) --- diff --git a/src/w32fns.c b/src/w32fns.c index 51540e1880c..5e42a1df6ff 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -7568,7 +7568,23 @@ DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0, clear_glyph_matrix (w->desired_matrix); clear_glyph_matrix (w->current_matrix); SET_TEXT_POS (pos, BEGV, BEGV_BYTE); - try_window (window, pos, TRY_WINDOW_IGNORE_FONTS_CHANGE); + bool displayed = try_window (window, pos, TRY_WINDOW_IGNORE_FONTS_CHANGE); + if (!displayed && NILP (Vx_max_tooltip_size)) + { +#ifdef ENABLE_CHECKING + struct glyph_row *row = w->desired_matrix->rows; + struct glyph_row *end = + w->desired_matrix->rows + w->desired_matrix->nrows; + while (row < end) + { + if (!row->displays_text_p + || row->ends_at_zv_p) + break; + ++row; + } + eassert (row < end && row->ends_at_zv_p); +#endif + } /* Calculate size of tooltip window. */ size = Fwindow_text_pixel_size (window, Qnil, Qnil, Qnil, make_fixnum (w->pixel_height), Qnil, @@ -10770,7 +10786,7 @@ bass-down, bass-boost, bass-up, treble-down, treble-up */); DEFVAR_LISP ("x-max-tooltip-size", Vx_max_tooltip_size, doc: /* SKIP: real doc in xfns.c. */); - Vx_max_tooltip_size = Fcons (make_fixnum (80), make_fixnum (40)); + Vx_max_tooltip_size = Qnil; DEFVAR_LISP ("x-no-window-manager", Vx_no_window_manager, doc: /* SKIP: real doc in xfns.c. */);