Subject: 26.0.50; modify-frame-parameters modifies undesignated parameter?

From: Katsumi Yamaoka <[email-masked]>
Date: Mon, 23 Jan 2017 16:28:35 +0900

Hi,

This didn't happen last week, and doesn't happen with Emacs 25.1.
I have two displays arranged up and down; one is the up side of
1920x1080 and the other is the down side of 1366x768, i.e.:
+---------------+
|               |
|               |
|   1920x1080   | External display
|               |
|               |
+--+---------+--+
   |         |
   |1366x 768|    Note PC
   |         |
   +---------+
The coordinates start with (0 0) and (256 1080) respectively[1].
In that situation, the following script makes a new frame protrude
to the left from the down screen:

(let ((frame (make-frame)))
  (modify-frame-parameters frame '((top . 1200))))

On the new frame, (frame-parameter nil 'left) returns 8, that is
outside of the down screen.  This happens whichever the original
frame (that runs the script) exists in the up screen or the down
screen.  As mentioned above, a new frame did not protrude from
the down screen last week.  Here is a workaround:

(let ((frame (make-frame)))
  (sit-for 0)
  (modify-frame-parameters frame '((top . 1200))))

But it is needless, isn't it?

Thanks in advance.
Regards,

In GNU Emacs 26.0.50.1 (i686-pc-cygwin, GTK+ Version 3.18.9)
 of 2017-01-23 built on yamaoka-PC
Windowing system distributor 'The Cygwin/X Project', version 11.0.11900000

[1] The values of left and top frame parameters seem to indicate
    that of a window of an Emacs frame, so we have to increase
    the values some extent.