Subject: Re: bug#31546: 27.0.50; macOS child frames with no mode-line mouse click problem

From: Aaron Jensen <[email-masked]>
Date: Thu, 24 May 2018 08:58:32 -0700

On Thu, May 24, 2018 at 8:29 AM Eli Zaretskii <[email-masked]> wrote:
> Is this NS specific?  I cannot reproduce any problem with the original
> recipe posted with this bug report, but maybe you are already using a
> modified one (the talk about pixelwise resizing seems to suggest
> that)?

> If it's NS-specific, I'd like to understand the issue deeper before we
> decide how and on which branch to fix it.

It could very well be. I don't have a non-NS machine to test. The behavior
seems isolated to frames that have no-accept-focus set. It doesn't actually
require the frame to be a child frame. This is the minimal repro so far:

(progn
   (let ((buffer (get-buffer " *foo*")))
     (when (buffer-live-p buffer)
       (kill-buffer buffer)))
   (let ((buffer (get-buffer-create " *foo*"))
         (after-make-frame-functions nil))
     (with-current-buffer buffer
       (goto-char (point-min))
       (insert "1 This is a test\n2 This is a test\n3 This is a test")
       (delete-region (point) (point-max))

       (setq-local resize-mini-windows nil)
       (setq-local mode-line-format nil)
       (setq-local repro-frame
                   (make-frame
                    `(
                      (minibuffer . nil)
                      (no-accept-focus . t)
                      )
                    ))
       (let ((win (frame-root-window repro-frame)))
         (set-window-parameter win 'mode-line-format nil)
         (set-window-buffer win buffer)))))

It's easier to repro if after evaling you move the new frame so that it no
longer overlaps the original frame. Then click a few px from the bottom of
the frame--about half of a line-height from the bottom. You may need to
click a couple of times (slowly) around this area. I tend to have the best
luck towards the bottom left of the frame. Here's a gif:

https://cl.ly/1R3Q231u201R/Screen%20Recording%202018-05-24%20at%2008.56%20AM.gif

One question is, on other platforms, if you inspect the start-event in
mouse-drag-region is it for the new frame or the original frame? For me on
macOS, it's for the new frame even though no-accept-focus is set.

> What do you mean by "a line that the buffer does not extend to"?  Is
> that empty space beyond EOB, or is that something else?

Yes.