GNU bug report logs - #75931
31.0.50; mouse-face and pointer properties make pointer change back and forth

Previous Next

Package: emacs;

Reported by: Mauro Aranda <maurooaranda <at> gmail.com>

Date: Wed, 29 Jan 2025 18:23:01 UTC

Severity: normal

Found in version 31.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #56 received at 75931 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Mauro Aranda <maurooaranda <at> gmail.com>
Cc: luangruo <at> yahoo.com, 75931 <at> debbugs.gnu.org
Subject: Re: bug#75931: 31.0.50; mouse-face and pointer properties make
 pointer change back and forth
Date: Sat, 01 Feb 2025 11:46:01 +0200
> Date: Fri, 31 Jan 2025 05:52:07 -0300
> Cc: 75931 <at> debbugs.gnu.org, luangruo <at> yahoo.com
> From: Mauro Aranda <maurooaranda <at> gmail.com>
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
>  >> Date: Thu, 30 Jan 2025 17:41:02 -0300
>  >> Cc: 75931 <at> debbugs.gnu.org, luangruo <at> yahoo.com
>  >> From: Mauro Aranda <maurooaranda <at> gmail.com>
>  >>
>  >> Eli Zaretskii <eliz <at> gnu.org> writes:
>  >>
>  >>  > Please try the patch below.
>  >>
>  >> Thanks, but the issue remains after applying the patch.
>  >
>  > That probably means that one or more other calls to show_mouse_face
>  > need to be passed 'false' as the last argument.  Since AFAIU only the
>  > calls with DRAW_MOUSE_FACE can reset the mouse pointer back to the
>  > hand shape, those are the calls that are the suspects.  So please
>  > change each such call and see which additional one needs that.  I hope
>  > there's only one such call, so please change only one call at a time,
>  > each time returning the other calls to their current state.
> 
> It's the call at the end of mouse_face_from_buffer_pos.

I'm confused: didn't you say earlier in this discussion that removing
this call to show_mouse_face in erase_phys_cursor:

  #ifdef HAVE_WINDOW_SYSTEM
    /* Since erasing the phys cursor will probably lead to corruption of
       the mouse face display if the glyph's pixel_width is not kept up
       to date with the :box property of the mouse face, just redraw the
       mouse face, but leave the mouse cursor as it was.  */
    if (FRAME_WINDOW_P (WINDOW_XFRAME (w)) && mouse_face_here_p)
      {
	w->phys_cursor_on_p = false;
	w->phys_cursor_type = NO_CURSOR;
	show_mouse_face (MOUSE_HL_INFO (WINDOW_XFRAME (w)), DRAW_MOUSE_FACE,
			 false);
	return;
      }
  #endif

solves the problem?  Is that still the case with the current code?




This bug report was last modified 108 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.