From: martin rudalics <rudalics@gmx.at>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 38038@debbugs.gnu.org, spacibba@aol.com, juri@linkov.net
Subject: bug#38038: 27.0.50; Emacs freezes opening tabs.
Date: Sat, 9 Nov 2019 10:02:36 +0100 [thread overview]
Message-ID: <e37b450a-00ad-c380-303b-87082c342575@gmx.at> (raw)
In-Reply-To: <83ftixa1xe.fsf@gnu.org>
> And the error says that the window has no buffer, is that right?
I think so but didn't look. Is it a good idea to signal that error
here in the first place?
>> where frame #3 indicates that we probably should avoid asking for a buffer
>> local value in a pseudo window. Right?
>
> Yes. Does adding that fix the problem, including the original one
> with the tab bar?
The below makes the bug go away for the tool bar, I didn't try for the
tab bar.
diff --git a/src/w32term.c b/src/w32term.c
index 9da0845836..68ae9be8e7 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -2512,20 +2512,23 @@ w32_draw_glyph_string (struct glyph_string *s)
unsigned long minimum_offset;
BOOL underline_at_descent_line;
BOOL use_underline_position_properties;
- Lisp_Object val
- = buffer_local_value (Qunderline_minimum_offset,
- s->w->contents);
+ Lisp_Object val;
+
+ if (BUFFERP (s->w->contents))
+ val = buffer_local_value (Qunderline_minimum_offset,
+ s->w->contents);
if (FIXNUMP (val))
minimum_offset = max (0, XFIXNUM (val));
else
minimum_offset = 1;
- val = buffer_local_value (Qx_underline_at_descent_line,
- s->w->contents);
+ if (BUFFERP (s->w->contents))
+ val = buffer_local_value (Qx_underline_at_descent_line,
+ s->w->contents);
underline_at_descent_line
= !(NILP (val) || EQ (val, Qunbound));
- val
- = buffer_local_value (Qx_use_underline_position_properties,
- s->w->contents);
+ if (BUFFERP (s->w->contents))
+ val = buffer_local_value (Qx_use_underline_position_properties,
+ s->w->contents);
use_underline_position_properties
= !(NILP (val) || EQ (val, Qunbound));
The bug was apparently introduced by
commit bbf53d99b57bd3d7fc0427d378df2efc6fa10e00
Author: Aaron Jensen <aaronjensen@gmail.com>
Date: Sat Mar 10 13:14:28 2018 +0200
Allow underline position variables be buffer-local
* src/nsterm.m (ns_draw_text_decoration):
* src/w32term.c (x_draw_glyph_string):
* src/xterm.c (x_draw_glyph_string): Allow underline-minimum-offset,
underline-at-descent-line, and x-use-underline-position-properties
be buffer local variables. (Bug#30553)
* src/xdisp.c (syms_of_xdisp) <underline-minimum-offset>: Add DEFSYM.
and probably manifests itself, as noted earlier, in all pseudo windows
that try to draw an underlined glyph string.
I can continue working on this after we decided whether to ask for
pseudo-windowness or just use the BUFFERP predicate as I did.
martin
next prev parent reply other threads:[~2019-11-09 9:02 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20191102214135.lehpefr5o4cji6ca.ref@Ergus>
2019-11-02 21:41 ` bug#38038: 27.0.50; Emacs freezes opening tabs Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2019-11-02 22:20 ` Juri Linkov
2019-11-02 22:55 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2019-11-03 20:22 ` Juri Linkov
2019-11-07 14:01 ` Eli Zaretskii
2019-11-07 14:50 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2019-11-07 22:36 ` Juri Linkov
2019-11-08 9:21 ` martin rudalics
2019-11-08 21:39 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2019-11-08 23:08 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2019-11-09 8:09 ` martin rudalics
2019-11-09 8:28 ` Eli Zaretskii
2019-11-09 9:02 ` martin rudalics [this message]
2019-11-09 9:25 ` Eli Zaretskii
2019-11-10 9:45 ` martin rudalics
2019-11-12 0:39 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2019-11-12 8:10 ` martin rudalics
2019-11-12 12:20 ` Ergus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2019-11-12 15:48 ` martin rudalics
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=e37b450a-00ad-c380-303b-87082c342575@gmx.at \
--to=rudalics@gmx.at \
--cc=38038@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=juri@linkov.net \
--cc=spacibba@aol.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).