Subject: bug#67204: 29.1; request: always echo EMOJI name while emoji-list

From: Eli Zaretskii <[email-masked]>
Date: Fri, 29 Dec 2023 09:44:05 +0200

> From: Daniel Martín <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Mon, 25 Dec 2023 21:52:42 +0100
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> 
> >> This is because Emacs automatically moves the point when it’s in the
> >> middle of text with the ’composition’ property.  See (elisp) Adjusting
> >> Point in the Elisp Info manual for more information about this feature.
> >> 
> >> It seems that post-command-hook is invoked _before_ the point is moved,
> >> so querying the position of point inside post-command-hook does not
> >> always give correct results.  You could add your code to the
> >> pre-redisplay-function instead.
> >
> > Would temporarily disabling point adjustment help here?
> 
> Not really.  I think point adjustment is really needed in the emoji-list
> buffer; otherwise, sometimes you’d need to press C-f multiple times to
> go from one emoji to the next one, when compositions are involved.
> 
> Here’s a complete recipe to understand the issue better:
> 
> emacs -Q
> 
> Eval the following code:
> 
> (add-hook #'post-command-hook
>           (lambda ()
>             (message "Column: %d" (current-column)))
>           nil)
> 
> M-x column-number-mode
> M-x emoji-list
> C-s people > activity
> C-n
> C-n
> C-f
> 
> The mode-line shows point is at line 115 and column 9, but the echo area
> shows "Column: 8".
> 
> However, if you click on the emoji at column 9, then the echo area
> correctly shows "Column: 9".

Yes, I know how point adjustment works.  What I meant is to set
global-disable-point-adjustment non-nil in the *Emoji* buffer.

However, now that I tried the original recipe in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67204#5, I don't think I
see the OP's problem.  With that post-command hook, I see the emoji
name shown in the echo-area for all the emoji I tried.  I probably
didn't try with those which caused problems to the OP, so I'm asking:
what are those "composed character EMOJI" which DON'T show their name
with that post-command hook?  I'd like to reproduce the problem before
I see if we have a ready solution for it.

Btw, each emoji in that buffer has also a help-echo string with the
name, so moving the mouse there is another way of showing the name.

Also, an alternative for post-command-hook is a point-entered text
property.