emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 46052d1dcb: Make sure we don't unknowingly truncate tooltip text


From: Eli Zaretskii
Subject: master 46052d1dcb: Make sure we don't unknowingly truncate tooltip text
Date: Thu, 21 Jul 2022 03:14:09 -0400 (EDT)

branch: master
commit 46052d1dcbf5beb24cc68195006f958b2d0dbe27
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    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)
---
 src/w32fns.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/w32fns.c b/src/w32fns.c
index 51540e1880..5e42a1df6f 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.  */);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]