Subject: bug#39247: 26.3; inappropriate mouse pointer shapes

From: [email-masked]
Date: Sat, 25 Jan 2020 12:00:19 +0900

Eli Zaretskii <[email-masked]> writes:

>> From: [email-masked]
>> Cc: [email-masked]
>> Date: Fri, 24 Jan 2020 22:36:05 +0900
>> 
>> >> (1)'text shape on mode-line.
>> >>    Move the mouse pointer onto the line number in the mode-line
>> >>    at the bottom of the emacs frame.
>> >>    Move the pointer to the right SPC.
>> >>    Then the pointer shape is 'text.
>> >>    (With (setq resize-mini-windows nil), this does not occur.)
>> >
>> > This part seems reasonable to me, not a bug: when resize-mini-windows
>> > is nil, you can resize the mini-window by dragging the mode line with
>> > the mouse, and that's what the mouse pointer shows you when it's over
>> > that area of the mode line.  When resize-mini-windows is non-nil, you
>> > cannot resize the mini-window.
>> 
>> If the pointer is moved onto the SPC area directly from outside of the
>> mode-line, the pointer shape is a north-west arrow.
>
> I cannot reproduce this (if you mean this happens when
> resize-mini-windows is nil).

When resize-mini-windows is nil, there is no problem.

When resize-mini-windows is non-nil and minibuffer is not active,
the problem is that the pointer shape on the same place changes
depending on where it comes from.

When the pointer moved onto the SPC right to the line number,
the pointer shape is
  'text if it comes from the left,
  a north-west arrow if it comes from the right.
This does not heppen on other SPCs in the same mode-line.

If the pointer comes from the upper side or the lower side, the shape
keeps same as just before it gets onto the SPC right to the line number.

If 'pointer property is put on the text displayed just above the SPC,
the specified shape is kept after it gets onto the SPC.
Evaluating the form below and moving the mouse pointer, the pointer
shape on the mode-line can be 'hdrag.

(let ((buf (get-buffer-create "tmp"))
      (str (propertize (make-string ?a 100) 'pointer 'hdrag)))
  (switch-to-buffer buf)
  (setq truncate-lines t)
  (delete-other-windows)
  (dotimes (i (window-height)) (insert str ?\n))
  (goto-char (point-min)))