unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: emacs-devel@gnu.org, stefankangas@gmail.com, dgutov@yandex.ru
Subject: Re: Tick Reduction
Date: Fri, 26 Nov 2021 14:56:42 +0200	[thread overview]
Message-ID: <83fsrj2hyt.fsf@gnu.org> (raw)
In-Reply-To: <87r1b39kza.fsf@gnus.org> (message from Lars Ingebrigtsen on Fri,  26 Nov 2021 13:09:45 +0100)

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: dgutov@yandex.ru,  stefankangas@gmail.com,  emacs-devel@gnu.org
> Date: Fri, 26 Nov 2021 13:09:45 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Given this description, what exactly do you mean when you say you
> > don't understand "how the display (resulting from those C strings)
> > does have text properties"?  How do you see that "the display does
> > have text properties"?
> 
> When hovering over "10%", Emacs displays the `help-echo' text property.

Ah, that.  It's an illusion which we create in this fragment from
display_mode_element:

		      case MODE_LINE_DISPLAY:
			{
			  int nglyphs_before, nwritten;

			  nglyphs_before = it->glyph_row->used[TEXT_AREA];
			  nwritten = display_string (spec, string, elt,
						     charpos, 0, it,
						     field, prec, 0,
						     multibyte);

			  /* Assign to the glyphs written above the
			     string where the `%x' came from, position
			     of the `%'.  */
			  if (nwritten > 0)
			    {
			      struct glyph *glyph
				= (it->glyph_row->glyphs[TEXT_AREA]
				   + nglyphs_before);
			      int i;

			      for (i = 0; i < nwritten; ++i)
				{
				  glyph[i].object = elt;
				  glyph[i].charpos = charpos;
				}

			      n += nwritten;
			    }

As you see, after display_string (where any 'display' properties can
be consulted and acted upon) does its job and produces some glyphs for
display on the mode line, we manually assign to each produced glyph
the original object from which those glyphs came.  In this case, that
object is the Lisp string whose text is "%p" and whose text properties
include help-echo etc.  Then, when the mouse hovers over that part of
the mode line, the code in note_mode_line_or_margin_highlight examines
the object recorded in the glyph below the mouse pointer, and extracts
the help-echo stuff.



  reply	other threads:[~2021-11-26 12:56 UTC|newest]

Thread overview: 167+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-18 20:37 Tick Reduction Lars Ingebrigtsen
2021-11-18 21:01 ` Perry E. Metzger
2021-11-19  5:25   ` Lars Ingebrigtsen
2021-11-18 21:23 ` Dmitry Gutov
2021-11-19  5:27   ` Lars Ingebrigtsen
2021-11-19  6:31     ` Michael Welsh Duggan
2021-11-19  6:50     ` Stefan Kangas
2021-11-19  7:05       ` Lars Ingebrigtsen
2021-11-19  8:19         ` Eli Zaretskii
2021-11-19  8:30           ` Lars Ingebrigtsen
2021-11-20  8:01             ` Eli Zaretskii
2021-11-20  9:07               ` Lars Ingebrigtsen
2021-11-21 15:11             ` Lars Ingebrigtsen
2021-11-21 17:16               ` Eli Zaretskii
2021-11-21 17:24                 ` Lars Ingebrigtsen
2021-11-21 17:39                   ` Eli Zaretskii
2021-11-21 18:00                     ` Lars Ingebrigtsen
2021-11-21 18:15                       ` Eli Zaretskii
2021-11-21 18:25                         ` Lars Ingebrigtsen
2021-11-21 18:33                           ` Lars Ingebrigtsen
2021-11-21 19:31                           ` Eli Zaretskii
2021-11-21 19:34                             ` Lars Ingebrigtsen
2021-11-21 19:36                               ` Lars Ingebrigtsen
2021-11-21 19:41                                 ` Lars Ingebrigtsen
2021-11-21 19:49                               ` Eli Zaretskii
2021-11-21 19:53                                 ` Lars Ingebrigtsen
2021-11-21 20:07                                   ` Eli Zaretskii
2021-11-21 20:17                                     ` Lars Ingebrigtsen
2021-11-21 20:26                                       ` Eli Zaretskii
2021-11-21 20:30                                         ` Lars Ingebrigtsen
2021-11-21 20:31                                           ` Lars Ingebrigtsen
2021-11-22  8:19                                             ` Lars Ingebrigtsen
2021-11-22 14:45                                               ` Eli Zaretskii
2021-11-22 14:50                                                 ` Lars Ingebrigtsen
2021-11-22 17:21                                                   ` Eli Zaretskii
2021-11-22 18:35                                                     ` Stefan Monnier
2021-11-23 10:15                                                     ` Lars Ingebrigtsen
2021-11-23 13:41                                                       ` Eli Zaretskii
2021-11-23 13:49                                                         ` Lars Ingebrigtsen
2021-11-23 14:19                                                           ` Eli Zaretskii
2021-11-23 14:32                                                             ` Lars Ingebrigtsen
2021-11-23 14:43                                                               ` Eli Zaretskii
2021-11-24 11:07                                                                 ` Lars Ingebrigtsen
2021-11-24 14:20                                                                   ` Eli Zaretskii
2021-11-24 16:28                                                                     ` Lars Ingebrigtsen
2021-11-24 17:05                                                                       ` Eli Zaretskii
2021-11-24 17:10                                                                         ` Lars Ingebrigtsen
2021-11-24 17:41                                                                           ` Eli Zaretskii
2021-11-24 17:50                                                                             ` Lars Ingebrigtsen
2021-11-24 18:39                                                                               ` Eli Zaretskii
2021-11-24 18:44                                                                                 ` Lars Ingebrigtsen
2021-11-24 19:00                                                                                   ` Eli Zaretskii
2021-11-25 13:02                                                                                     ` Lars Ingebrigtsen
2021-11-25 12:58                                                                                 ` Lars Ingebrigtsen
2021-11-25 13:28                                                                                   ` Eli Zaretskii
2021-11-25 14:29                                                                                     ` Lars Ingebrigtsen
2021-11-25 15:10                                                                                       ` Eli Zaretskii
2021-11-26 12:12                                                                                         ` Lars Ingebrigtsen
2021-11-26 12:43                                                                                           ` Eli Zaretskii
2021-11-24 18:41                                                                             ` Lars Ingebrigtsen
2021-11-24 18:53                                                                               ` Eli Zaretskii
2021-11-24 22:32                                                                                 ` Yuan Fu
2021-11-25  7:34                                                                                   ` Eli Zaretskii
2021-11-26 17:03                                                                                     ` Yuan Fu
2021-11-26 18:41                                                                                       ` Eli Zaretskii
2021-11-26 18:54                                                                                         ` Yuan Fu
2021-11-26 18:57                                                                                           ` Eli Zaretskii
2021-11-25 13:06                                                                                 ` Lars Ingebrigtsen
2021-11-25 14:02                                                                                   ` Eli Zaretskii
2021-11-25 14:07                                                                                     ` Lars Ingebrigtsen
2021-11-25 14:12                                                                                       ` Eli Zaretskii
2021-11-25 14:16                                                                                         ` Lars Ingebrigtsen
2021-11-25 15:04                                                                                           ` Eli Zaretskii
2021-11-26 12:09                                                                                             ` Lars Ingebrigtsen
2021-11-26 12:56                                                                                               ` Eli Zaretskii [this message]
2021-11-27 14:15                                                                                                 ` Lars Ingebrigtsen
2021-11-27 14:51                                                                                                   ` Eli Zaretskii
2021-11-29 13:40                                                                                                     ` Lars Ingebrigtsen
2021-11-29 13:53                                                                                                       ` Eli Zaretskii
2021-11-29 14:00                                                                                                         ` Lars Ingebrigtsen
2021-11-29 14:06                                                                                                           ` Eli Zaretskii
2021-11-29 14:15                                                                                                             ` Lars Ingebrigtsen
2021-11-29 14:17                                                                                                             ` Eli Zaretskii
2021-11-29 14:35                                                                                                               ` Eli Zaretskii
2021-11-29 15:06                                                                                                                 ` Lars Ingebrigtsen
2021-11-24 23:10                                               ` Feng Shu
2021-11-25  7:42                                                 ` Eli Zaretskii
2021-11-25 11:52                                                 ` Lars Ingebrigtsen
2021-11-22 23:26                                       ` chad
2021-11-21 20:10                                   ` Lars Ingebrigtsen
2021-11-21 20:22                                     ` Eli Zaretskii
2021-11-21 20:28                                       ` Lars Ingebrigtsen
2021-11-21 20:41                                         ` Lars Ingebrigtsen
2021-11-21 21:13                                           ` Eli Zaretskii
2021-11-21 20:42                                         ` Eli Zaretskii
2021-11-21 21:12                                           ` Eli Zaretskii
2021-11-22 11:22                                             ` Lars Ingebrigtsen
2021-11-22 14:52                                               ` Eli Zaretskii
2021-11-22 14:55                                                 ` Lars Ingebrigtsen
2021-11-22 18:04                                             ` Eli Zaretskii
2021-11-19  8:33         ` Stefan Kangas
2021-11-19  8:39           ` Lars Ingebrigtsen
2021-11-19  8:48             ` Eli Zaretskii
2021-11-19 10:00               ` Lars Ingebrigtsen
2021-11-19 10:28               ` Stefan Kangas
2021-11-19 12:41                 ` Eli Zaretskii
2021-11-19 13:04                   ` Stefan Kangas
2021-11-19 13:18                     ` Eli Zaretskii
2021-11-19 13:41                       ` Stefan Kangas
2021-11-19 13:48                         ` Eli Zaretskii
2021-11-21 13:35                           ` Stefan Kangas
2021-11-19 10:28             ` Stefan Kangas
2021-11-20  8:43               ` Lars Ingebrigtsen
2021-11-20  9:03                 ` Eli Zaretskii
2021-11-20  9:26                   ` Lars Ingebrigtsen
2021-11-20  9:51                     ` Eli Zaretskii
2021-11-20  9:56                       ` Lars Ingebrigtsen
2021-11-20 10:11                         ` Eli Zaretskii
2021-11-21  8:57               ` Lars Ingebrigtsen
2021-11-21  9:02                 ` Lars Ingebrigtsen
2021-11-21 13:36                   ` Stefan Kangas
2021-11-21 19:26                     ` Lars Ingebrigtsen
2021-11-21 13:54             ` Stefan Kangas
2021-11-21 15:25               ` Lars Ingebrigtsen
2021-11-21 19:28                 ` Stefan Kangas
2021-11-21 19:31                   ` Lars Ingebrigtsen
2021-11-22 14:57         ` Use variable-pitch face in more places Stefan Kangas
2021-11-22 15:05           ` Stefan Kangas
2021-11-22 17:22           ` Juri Linkov
2021-11-22 18:10             ` Stefan Kangas
2021-11-22 18:40               ` Juri Linkov
2021-11-23  9:56               ` Lars Ingebrigtsen
2021-11-24  9:12                 ` Juri Linkov
2021-11-24 16:52                   ` Lars Ingebrigtsen
2021-11-24 17:59                     ` Juri Linkov
2021-11-19  7:48       ` Tick Reduction Eli Zaretskii
2021-11-19 13:41         ` Stefan Kangas
2021-11-19 11:58     ` Dmitry Gutov
2021-11-18 22:18 ` [External] : " Drew Adams
2021-11-21 10:17   ` Phil Sainty
2021-11-19  5:48 ` Lars Ingebrigtsen
2021-11-19  7:24   ` Eli Zaretskii
2021-11-19  7:28     ` Lars Ingebrigtsen
2021-11-19  8:26       ` Eli Zaretskii
2021-11-19  8:33         ` Lars Ingebrigtsen
2021-11-19  6:42 ` Eric S Fraga
2021-11-19  7:30   ` Lars Ingebrigtsen
2021-11-19  6:52 ` Stefan Kangas
2021-11-19  7:26   ` Lars Ingebrigtsen
2021-11-19  7:59     ` Stefan Kangas
2021-11-19  8:17       ` Lars Ingebrigtsen
2021-11-19  8:09   ` Eli Zaretskii
2021-11-19  8:34     ` Stefan Kangas
2021-11-19 13:58 ` Stefan Monnier
2021-11-19 14:46   ` Eli Zaretskii
2021-11-19 18:22     ` Stefan Monnier
2021-11-19 18:53       ` Eli Zaretskii
2021-11-19 19:24         ` Stefan Monnier
2021-11-19 19:50           ` Eli Zaretskii
2021-11-19 21:09             ` Stefan Monnier
2021-11-20  6:34               ` Eli Zaretskii
2021-11-20 13:11                 ` Stefan Monnier
2021-11-20 13:32                   ` Eli Zaretskii
2021-11-20 14:06                     ` Stefan Monnier
2021-11-20 14:35                       ` Eli Zaretskii
2021-11-20 15:01                         ` Stefan Monnier
2021-11-20  9:00   ` Lars Ingebrigtsen

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=83fsrj2hyt.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=larsi@gnus.org \
    --cc=stefankangas@gmail.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).