unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Po Lu <luangruo@yahoo.com>
Cc: mwd@md5i.com, 56561@debbugs.gnu.org
Subject: bug#56561: 29.0.50; Infloop in try_window
Date: Sun, 17 Jul 2022 16:29:02 +0300	[thread overview]
Message-ID: <83y1wrq34x.fsf@gnu.org> (raw)
In-Reply-To: <87r12kfam3.fsf@yahoo.com> (message from Po Lu on Sun, 17 Jul 2022 15:43:00 +0800)

> From: Po Lu <luangruo@yahoo.com>
> Cc: mwd@md5i.com,  56561@debbugs.gnu.org
> Date: Sun, 17 Jul 2022 15:43:00 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > More than 40 screen lines of canonical characters?  Please show a
> > recipe for reproducing this.
> 
> Place the following text in a buffer
> 
> <a href="data:image/png;base64,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">View image</a>
> 
> and type "M-x shr-render-buffer RET".  The tooltip on top of "View
> image" will be larger than the size limit.

Thanks.  The patch below is what I had in mind.  WDYT?

diff --git a/src/w32fns.c b/src/w32fns.c
index 51540e1..5e42a1d 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 @@ syms_of_w32fns (void)
 
   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	other threads:[~2022-07-17 13:29 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-14 18:57 bug#56561: 29.0.50; Infloop in try_window Michael Welsh Duggan
2022-07-14 19:28 ` Eli Zaretskii
2022-07-14 22:44   ` Michael Welsh Duggan
2022-07-15  6:14     ` Eli Zaretskii
2022-07-15 10:52       ` Eli Zaretskii
2022-07-15 13:54         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-15 14:24           ` Eli Zaretskii
2022-07-15 15:27             ` Eli Zaretskii
2022-07-15 15:37               ` Eli Zaretskii
2022-07-15 15:56                 ` Eli Zaretskii
2022-07-16  3:15                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16  5:50                     ` Eli Zaretskii
2022-07-16  5:55                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16  6:33                         ` Eli Zaretskii
2022-07-16  6:42                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16  7:32                             ` Eli Zaretskii
2022-07-16  8:22                               ` Eli Zaretskii
2022-07-16  8:47                               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16  8:59                                 ` Eli Zaretskii
2022-07-16 10:34                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16 10:57                                     ` Eli Zaretskii
2022-07-16 11:07                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16 11:45                                         ` Eli Zaretskii
2022-07-16 12:34                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16 12:38                                             ` Eli Zaretskii
2022-07-17  0:45                                               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-17  5:43                                                 ` Eli Zaretskii
2022-07-17  6:29                                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-17  6:40                                                     ` Eli Zaretskii
2022-07-17  7:43                                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-17 13:29                                                         ` Eli Zaretskii [this message]
2022-07-18  0:57                                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-18 12:37                                                             ` Eli Zaretskii
2022-07-19  0:54                                                               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-21  7:14                                                                 ` Eli Zaretskii
2022-07-21  8:17                                                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16  3:14                 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16  3:11               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-16  3:07             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-07-15 14:03         ` Michael Welsh Duggan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83y1wrq34x.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=56561@debbugs.gnu.org \
    --cc=luangruo@yahoo.com \
    --cc=mwd@md5i.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).