From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: mwd@md5i.com, 56561@debbugs.gnu.org
Subject: bug#56561: 29.0.50; Infloop in try_window
Date: Sat, 16 Jul 2022 14:42:09 +0800 [thread overview]
Message-ID: <87lestk18e.fsf@yahoo.com> (raw)
In-Reply-To: <83zgh9r2he.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 16 Jul 2022 09:33:17 +0300")
Eli Zaretskii <eliz@gnu.org> writes:
> if (CONSP (Vx_max_tooltip_size)
> && RANGED_FIXNUMP (1, XCAR (Vx_max_tooltip_size), INT_MAX)
> && RANGED_FIXNUMP (1, XCDR (Vx_max_tooltip_size), INT_MAX))
> {
> w->total_cols = XFIXNAT (XCAR (Vx_max_tooltip_size));
> w->total_lines = XFIXNAT (XCDR (Vx_max_tooltip_size));
> }
> else
> {
> w->total_cols = 80;
> w->total_lines = 40;
> }
>
> w->pixel_width = w->total_cols * FRAME_COLUMN_WIDTH (tip_f);
> w->pixel_height = w->total_lines * FRAME_LINE_HEIGHT (tip_f);
> FRAME_TOTAL_COLS (tip_f) = WINDOW_TOTAL_COLS (w);
> adjust_frame_glyphs (tip_f);
Hmm, right. But what if Vx_max_tooltip_size makes the window too small
to hold the entire tooltip?
> Or maybe I don't understand what you mean by "the size can be changed
> by the window manager", please explain and show the code to which you
> allude.
>
> As for toolkits: we don't use this code when toolkit tooltips are
> used.
I wasn't talking about X specifically. The code in nsfns.m calls
[NSWindow setFrame: display:], which can end up calling
adjust_frame_size if NS decides for whatever reason to resize the
tooltip frame.
But you're right. It is called after we compute the window dimensions
and then call try_window.
> That would trigger unnecessarily, creating false positives.
How so? We pass TRY_WINDOW_IGNORE_FONTS_CHANGE, so try_window can only
return 0 if the glyph matrices are too small.
> The situation that started this bug report is one such case: my fix
> will cause try_window to return zero in that case. But if the entire
> text was processed and is in the glyph matrix, that zero return value
> doesn't mean a failure.
That isn't what the comment above try_window says about its return
value:
Value is 1 if successful. It is zero if fonts were loaded during
redisplay which makes re-adjusting glyph matrices necessary, and -1
if point would appear in the scroll margins.
(We check the former only if TRY_WINDOW_IGNORE_FONTS_CHANGE is
unset in FLAGS, and the latter only if TRY_WINDOW_CHECK_MARGINS is
set in FLAGS.)
next prev parent reply other threads:[~2022-07-16 6:42 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 [this message]
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
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lestk18e.fsf@yahoo.com \
--to=bug-gnu-emacs@gnu.org \
--cc=56561@debbugs.gnu.org \
--cc=eliz@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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.