Subject: 25.1.50; `make-frame' given `top' param creates frame with ~10x smaller `top'

From: Drew Adams <[email-masked]>
Date: Tue, 26 Jul 2016 21:49:16 -0700 (PDT)

emacs -Q

In *scratch*, type and evaluate:

(make-frame '((name . "AAA")
              (left . 800) (top . 600)
              (user-position . t)))

In the new frame, do `M-: (frame-parameters)'.  You see something like
this:

((tool-bar-position . top) (parent-id) (explicit-name . t)
 (display . "w32") (visibility . t) (icon-name) (window-id . "265868")
 (top . 73) (left . 800) (buried-buffer-list)
 ^^^^^^^^^^ ^^^^^^^^^^^^
 (buffer-list #<buffer *scratch*> #<buffer  *Minibuf-1*>)
 (unsplittable) ...)

And that new frame is indeed about 73 pixels from the top screen edge,
and about 800 pixels from the left screen edge.

What am I missing?  The Elisp manual, node `Position Parameters' seems
to say that `top' is just like `left'.  The resulting `left' value is
exactly what was prescribed to `make-frame', but the resulting `top'
value is 73 instead of the prescribed 600.

But I see about the same behavior in Emacs 23 and 22, so this is
apparently not new.  Am I misunderstanding the doc description?

FWIW, Emacs 20 behaves just like the doc says (as I understand it): the
resulting `top' value is exactly what you provide to `make-frame', and
the frame is actually positioned with its top at that position (not at
a top location that is ~10x smaller).

In GNU Emacs 25.1.50.1 (i686-pc-mingw32)
 of 2015-12-10
Repository revision: 6148555ee5a3d0139ae517803718b3e0357933c7
Windowing system distributor 'Microsoft Corp.', version 6.1.7601
Configured using:
 'configure --prefix=/c/Devel/emacs/snapshot/trunk --enable-checking=yes
 --enable-check-lisp-object-type --without-compress-install 'CFLAGS=-Og
 -ggdb3' LDFLAGS=-Lc:/Devel/emacs/lib 'CPPFLAGS=-DGC_MCHECK=1
 -Ic:/Devel/emacs/include''