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: Sat, 16 Jul 2022 10:32:30 +0300	[thread overview]
Message-ID: <83y1wtqzqp.fsf@gnu.org> (raw)
In-Reply-To: <87lestk18e.fsf@yahoo.com> (message from Po Lu on Sat, 16 Jul 2022 14:42:09 +0800)

> From: Po Lu <luangruo@yahoo.com>
> Cc: mwd@md5i.com,  56561@debbugs.gnu.org
> Date: Sat, 16 Jul 2022 14:42:09 +0800
> 
> Hmm, right.  But what if Vx_max_tooltip_size makes the window too small
> to hold the entire tooltip?

Then it's what the user or the application who set the values wanted,
and we shouldn't override that.  And in this case having try_window
return zero is perfectly OK, btw, even if it didn't process through
ZV.

> > 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.

Depending on the conditions when that resizing happens, it could
arguably be a bug, e.g. if x-max-tooltip-size restriction is
overruled.

> > 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 question is "small for what?"  If it is only too small to display
enough empty glyph rows, we don't care, since the tooltip will be
sized to accommodate for the text part only, and the empty glyph rows
will not be displayed anyway.

> > 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.)

I'm reading the code, not the commentary.  I will fix the commentary
to be more accurate: it doesn't take into account the special way we
invoke this function from x-show-tip.  Note that x-show-tip doesn't
check the return value, and never did, for that very reason.





  reply	other threads:[~2022-07-16  7:32 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 [this message]
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

  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=83y1wtqzqp.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).