From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#56561: 29.0.50; Infloop in try_window Date: Sun, 17 Jul 2022 16:29:02 +0300 Message-ID: <83y1wrq34x.fsf@gnu.org> References: <874jzjwmhn.fsf@md5i.com> <83cze6s7xt.fsf@gnu.org> <83bktqs724.fsf@gnu.org> <878rotlpck.fsf@yahoo.com> <834jzhsj1a.fsf@gnu.org> <87v8rxk3eb.fsf@yahoo.com> <83zgh9r2he.fsf@gnu.org> <87lestk18e.fsf@yahoo.com> <83y1wtqzqp.fsf@gnu.org> <87edyljvfs.fsf@yahoo.com> <83tu7hqvq1.fsf@gnu.org> <877d4djqhi.fsf@yahoo.com> <83pmi5qq8c.fsf@gnu.org> <87lestiadt.fsf@yahoo.com> <83o7xpqo1u.fsf@gnu.org> <87fsj1i6by.fsf@yahoo.com> <83mtd9qlkx.fsf@gnu.org> <8735f0in23.fsf@yahoo.com> <83edykqopk.fsf@gnu.org> <877d4cgsl3.fsf@yahoo.com> <838rosqm1j.fsf@gnu.org> <87r12kfam3.fsf@yahoo.com> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="793"; mail-complaints-to="usenet@ciao.gmane.io" Cc: mwd@md5i.com, 56561@debbugs.gnu.org To: Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jul 17 15:30:16 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oD4Lf-000Abw-HB for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 17 Jul 2022 15:30:15 +0200 Original-Received: from localhost ([::1]:35542 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oD4Le-0002v3-77 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 17 Jul 2022 09:30:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35640) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oD4LS-0002tE-Uj for bug-gnu-emacs@gnu.org; Sun, 17 Jul 2022 09:30:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49131) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oD4LS-0008P1-KQ for bug-gnu-emacs@gnu.org; Sun, 17 Jul 2022 09:30:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oD4LS-0001Kg-F9 for bug-gnu-emacs@gnu.org; Sun, 17 Jul 2022 09:30:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 17 Jul 2022 13:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56561 X-GNU-PR-Package: emacs Original-Received: via spool by 56561-submit@debbugs.gnu.org id=B56561.16580645715065 (code B ref 56561); Sun, 17 Jul 2022 13:30:02 +0000 Original-Received: (at 56561) by debbugs.gnu.org; 17 Jul 2022 13:29:31 +0000 Original-Received: from localhost ([127.0.0.1]:46890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oD4Kv-0001Jb-FK for submit@debbugs.gnu.org; Sun, 17 Jul 2022 09:29:31 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:50836) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oD4Kq-0001JK-8q for 56561@debbugs.gnu.org; Sun, 17 Jul 2022 09:29:28 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:46098) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oD4Kk-0008JE-Tm; Sun, 17 Jul 2022 09:29:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=tv2qjf0ZfP43JK28qVUj/c/OldRc7ob0obzr9kC2YlI=; b=RfOH8UW8Q9xW 7nO0b8XJ95/x4brMQ1VPyEVU15b2APs80xN5RxpkL/hEbega7xfdIpoKQ9cJ397XT5GfEbgEiSUSX AxUKOAE9SXIFJus3veOCuxL0VbSm/sdtTMfKKuR8yC3Z6Ot73P3QK1FOkMpLdVHJ/d9QAp3UP61W0 U1a2UuzjOXT2b8MTU8/uItOeDKwOBJNSZY4wlLPvFxbrcH9NvJciJXx0jRevf7/nBwhK6kmP6rL8E 7rR6DPkWVu13Lfx0A2hx6UCuCJUdSbQxvbnQ9casCbABFcCrrhbE59XCjiBtlZV++7v5aez69xJPk TjFaBc+r8mQy1+DzpuB5KQ==; Original-Received: from [87.69.77.57] (port=2380 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oD4Kj-0007eR-MU; Sun, 17 Jul 2022 09:29:18 -0400 In-Reply-To: <87r12kfam3.fsf@yahoo.com> (message from Po Lu on Sun, 17 Jul 2022 15:43:00 +0800) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:237264 Archived-At: > From: Po Lu > Cc: mwd@md5i.com, 56561@debbugs.gnu.org > Date: Sun, 17 Jul 2022 15:43:00 +0800 > > Eli Zaretskii writes: > > > More than 40 screen lines of canonical characters? Please show a > > recipe for reproducing this. > > Place the following text in a buffer > > View image > > 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. */);