Subject: bug#38452: 26.3; set-frame-position is slightly drifted

From: martin rudalics <[email-masked]>
Date: Tue, 3 Dec 2019 19:37:08 +0100

>> BTW, I still don't
 >> know what your window manager is.
 >
 > I guess it is gdm3 as I entered the following commands:

That's a display manager.

 >> If we say that the origin for things to display on screen is (-10, -8)
 >> - something you could probably verify by moving the dock to the right
 >> and the menu bar line to the bottom - we have a clue.  Just that it
 >> doesn't make sense to me, yet.
 >
 > Not sure: when I try with (undecorated.t) I get LEFT=0 TOP=(+ -30)
 > So the left side seems to be at 0.

So it seems that your window manager skips the decorations when a
frame is adjacent to an edge by just moving that frame outside the
display by the size of the decoration.  Some window managers make this
customizable IIRC.

 > ;; 4eme experience 2 displays: on left: internal screen=2ndary display , on right: external=primary display with dock and menu on right
 > ;; the frame is located in the internal screen
 > (display-monitor-attributes-list)
 > (((name . "HDMI-1") (geometry 1920 0 1920 1080) (workarea 1920 27 1920 1053) (mm-size 521 293) (frames) (source . "Gdk")) ((name . "eDP-1") (geometry 0 0 1920 1080) (workarea 0 0 1920 1080) (mm-size 309 174) (frames #<frame *unsent mail to martin rudalics* 0x5289930> #<frame test-frame-set-position-Martin-1.el 0x624cc90>) (source . "Gdk")))
 >
 >
 > (set-frame-position nil 0 0)
 > t
 > (pl-lt)
 > " LEFT=(+ -10)  TOP=(+ -8)"
 >
 > (progn (set-frame-position nil 0 0) (pl-lt))
 > " LEFT=0  TOP=0"
 >
 > (progn (set-frame-position nil 0 0) (sleep-for 5) (pl-lt))
 > " LEFT=(+ -10)  TOP=(+ -8)"
 >
 >
 > (modify-frame-parameters nil '((left . 0) (top . 0) (undecorated . t)))
 > nil
 > (pl-lt)
 > " LEFT=0  TOP=(+ -30)"
 >
 >
 >
 > (modify-frame-parameters nil '((user-position . t) (left . 0) (top . 0)))
 > nil
 > (pl-lt)
 > " LEFT=0  TOP=(+ -30)"

But the interesting case is whether specifying 'user-position' would
have any impact when the dock and the menu bar line are present on the
same frame, that is, the single display case.

martin