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

From: Pascal Lambrechts <[email-masked]>
Date: Tue, 3 Dec 2019 18:53:04 +0000

martin rudalics <[email-masked]> writes:

>  >> 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.
>
Hmmm I dont know how to et the information about the window manager.
I know that my linux is ubuntu 18 and I dont thing that I changed
anything arelated to the window manager from the standard configurtation.
Do you have some idea of how I could know what is  my window 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.
>
My new experiment with a single display, the dock at left and menu line
at top:

(display-monitor-attributes-list)
(((name . "eDP-1") (geometry 0 0 1920 1080) (workarea 55 27 1865 1053) (mm-size 309 174) (frames #<frame *notmuch-id:[email-masked]* 0x5289930> #<frame test-frame-set-position-Martin-1.el 0x624cc90>) (source . "Gdk")))

(modify-frame-parameters nil '((user-position . t) (left . 0) (top . 0)))
nil
(pl-lt)
" LEFT=45  TOP=19"

> martin

Pascal
-- 
Pascal Lambrechts  --  UCLouvain (SST/SC/MATH IRMP)
building: Marc De Hemptinne (Louvain-la-Neuve) - Local: B 430
phone: +32 (0)104x73161 
IRMP bte L7.01.02 // Chemin du Cyclotron 2 //  1348 Louvain-la-Neuve // Belgium