From: Pascal Lambrechts <pascal.lambrechts@uclouvain.be>
To: "38452@debbugs.gnu.org" <38452@debbugs.gnu.org>
Subject: bug#38452: [Pascal Lambrechts] Re: bug#38452: 26.3; set-frame-position is slightly drifted
Date: Tue, 3 Dec 2019 15:04:51 +0000 [thread overview]
Message-ID: <845zixbgbx.fsf@PC-1S0-327.i-did-not-set--mail-host-address--so-tickle-me> (raw)
In-Reply-To: <84r21nl8qq.fsf@PC-1S0-327.i-did-not-set--mail-host-address--so-tickle-me>
[-- Attachment #1: Type: text/plain, Size: 232 bytes --]
--
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
[-- Attachment #2: Type: message/rfc822, Size: 9732 bytes --]
From: Pascal Lambrechts <pascal.lambrechts@uclouvain.be>
To: martin rudalics <rudalics@gmx.at>
Subject: Re: bug#38452: 26.3; set-frame-position is slightly drifted
Date: Tue, 03 Dec 2019 15:08:23 +0100
Message-ID: <84blspbiy0.fsf@PC-1S0-327.i-did-not-set--mail-host-address--so-tickle-me>
Martin,
I answer some of your quesions inside your mail.
Also at the end of the mail I add a copy of a scratch buffer on which I did
more experiments (with one or two displays).
As you can read in this scratch the behaviour is even more mysterious
now. Indeed if I set the parameters and read them back by
frame-parameter both evaluated in a enclosing progn then I get the
expected values. But if I reread right after the parameters I get
different values !?
martin rudalics <rudalics@gmx.at> writes:
> Pascal, thanks for replying. I quote your mail in full below so it
> appears that way on the bug tracker. Please always use "reply to all"
> when answering, so none of your mails get lost.
>
> > When I does
> > (set-frame-position nil 0 0)
> > the frame jump to the left topmost point of the avalaible screen not
> > counting the dock (which on my gnome-3 desktop is on the left side) neither the
> > main menu line.
> > If I repeat that command the frame does not move.
> >
> > But in that situation I get the evaluations:
> > (frame-parameter nil 'left) ==> 45
> > (frame-parameter nil 'top) ==> 19
> >
> > Now if I evaluate (set-frame-position nil 45 19)
> > the frame does not move (comparing with putting the frame at (0,0))
> > and the parameters left and top keep unchanged values 45 and 19
> >
> > If now I evaluate:
> >
> > (set-frame-position nil 100 60)
> > (frame-parameter nil 'left)
> > (frame-parameter nil 'top)
> > I get the values 90 and 52 for left and top.
> >
> > If reconfigure gnome so that the dock appears on the bottom of
> > my screen instead of the left edge, then
> > (set-frame-position nil 0 0)
> > moves the frame on the leftmost position of the screen and
> > (frame-parameter nil 'left) ==> (+ -10)
>
> From this I conclude that the dock should be responsible for the
> behavior you see. Which window manager do you use? What do you get
> when you evaluate (display-monitor-attributes-list) in Emacs?
Here are the values of
(display-monitor-attributes-list)
when the dock is on the left or the bottom of the screen (the workarea
are distinct)
pl-dock-left’s value is
(((name . "eDP-1")
(geometry 0 0 1920 1080)
(workarea 55 27 1865 1053)
(mm-size 309 174)
(frames #<frame *Minibuf-2* 0x4e723c0> #<frame *unsent mail to martin rudalics* 0x5289930>)
(source . "Gdk")))
pl-dock-bottom’s value is
(((name . "eDP-1")
(geometry 0 0 1920 1080)
(workarea 0 27 1920 1000)
(mm-size 309 174)
(frames #<frame *Minibuf-2* 0x4e723c0> #<frame *unsent mail to martin rudalics* 0x5289930>)
(source . "Gdk")))
>Are > there differences in the workarea values when you evaluate that
> expression with the dock on the left and at the bottom?
Indeed see above
>
> Also you say that
>
> (set-frame-position nil 0 0)
>
> and
>
> (set-frame-position nil 45 19)
>
> both put the frame at the same position on the screen and in both
> cases the following evaluations result:
>
> (frame-parameter nil 'left) ==> 45
> (frame-parameter nil 'top) ==> 19
>
> Is my reading of your text right? If so, then the "problems" seem to
> start when the X-value is somewhere between 45 and 100 and the Y-value
> between 19 and 60. Right?
Yes I did some experiment in the scratch file.
In the first configuration (my laptop screen as a unique scrren) it
seems that when the frame is at the top left corner the parameters
take values (L=45,T=19) (which probably correspond to the width of the
dock and height of the menu line).
If I set-frame-position at (x,y) with 0<=x<=55 and 0<=y<=27 then the
frame does not move and the values are reset to (45,19).
If I set-frame-position at (60,30) then the frame moved a little bit and
the parameters evaluate to (50,22).
>
> Since the behavior apparently changes when you move the dock to the
> bottom, the X-positioning seems clearly related to the position of the
> dock. Would the Y-positioning then be related to the presence of the
> main menu line (presumably on the bottom)? The one thing that
> stupefies me then in either case is why the deviations are 10 and 8
> pixels only. I presume that both, your dock and the menu line, are
> wider.
Yes the dock and menu line are certainly wider than 10 et 8 pixels.
>
> Thanks, martin
Here is a scratch file on which I did some experiment commented.
Th function pl-lt is defined to easily show the values of the parameters
left/top of the frame:
========================== SCRACTCH INTERACTIVE LISP FILE WITH EXPERMINTS ========================================
;; This buffer is for text that is not saved, and for Lisp evaluation.
;; To create a file, visit it with <open> and enter text in its buffer.
;; Experiments with set-frame-position and the result values of the parameters left and top of the frame
;; Each parenthesis sexp has been evaluated with C-j = eval-print-last-sexp
(defun pl-lt ()
"Returns a string giving the left/top positions of the current frame"
(concat " LEFT="
(prin1-to-string (frame-parameter nil 'left))
" TOP="
(prin1-to-string (frame-parameter nil 'top))))
;; First experiments with the laptop as only display and the gnome-3 dock on the left:
(display-monitor-attributes-list)
(((name . "eDP-1") (geometry 0 0 1920 1080) (workarea 55 27 1865 1053) (mm-size 309 174) (frames #<frame *scratch* 0x4e723c0> #<frame *unsent mail to martin rudalics* 0x5289930>) (source . "Gdk")))
(set-frame-position nil 0 0)
t
;; the frame is immediately below the menu line and on the immediate right of the left dock
(pl-lt)
" LEFT=45 TOP=19"
(progn (set-frame-position nil 0 0) (pl-lt))
" LEFT=0 TOP=0"
(pl-lt)
" LEFT=45 TOP=19"
(set-frame-position nil 45 19)
t
;; this did not move the frame: still at left corner but not overlaping the dock or menu line
(pl-lt)
" LEFT=45 TOP=19"
(progn (set-frame-position nil 45 19) (pl-lt))
" LEFT=45 TOP=19"
(pl-lt)
" LEFT=45 TOP=19"
(progn (set-frame-position nil 50 25) (pl-lt))
" LEFT=50 TOP=25"
;; this did not move the frame
(pl-lt)
" LEFT=45 TOP=19"
;; the parameters changed between the (pl-lt) inside the progn and after !!!
(progn (set-frame-position nil 55 27) (pl-lt))
" LEFT=55 TOP=27"
;; this did not move the frame
(pl-lt)
" LEFT=45 TOP=19"
(progn (set-frame-position nil 60 30) (pl-lt))
" LEFT=60 TOP=30"
;; this moved very slight the frame away from the left-top corner
(pl-lt)
" LEFT=50 TOP=22"
(set-frame-position nil 400 100)
t
;; this moved the frame sowewhere in the middle of the screen
(pl-lt)
" LEFT=390 TOP=92"
(progn (set-frame-position nil 390 92) (pl-lt))
" LEFT=390 TOP=92"
;; this moved a bit the frame towars the top left corner
(pl-lt)
" LEFT=380 TOP=84"
;; ---------------------------
;; Second experiments with an external screen as single display
(display-monitor-attributes-list)
(((name . "DP-1-2") (geometry 0 0 1920 1080) (workarea 55 27 1865 1053) (mm-size 598 336) (frames #<frame *scratch* 0x4e723c0> #<frame *unsent mail to martin rudalics* 0x5289930>) (source . "Gdk")))
(set-frame-position nil 0 0)
;; the frame is immediately below the menu line and on the immediate right of the left dock
t
(pl-lt)
" LEFT=45 TOP=19"
(progn (set-frame-position nil 0 0) (pl-lt))
" LEFT=0 TOP=0"
(pl-lt)
;; Third experiment with a double display: internal display of laptop + external display
;; The external display is set as the 'primary' display and is supposed to be on the right
;; of the laptop display. So the menu bar and dock are only on the external display
(display-monitor-attributes-list)
(((name . "DP-1-2") (geometry 1920 0 1920 1080) (workarea 1920 27 1920 1053) (mm-size 598 336) (frames #<frame *scratch* 0x4e723c0> #<frame *unsent mail to martin rudalics* 0x5289930>) (source . "Gdk")) ((name . "eDP-1") (geometry 0 0 1920 1080) (workarea 0 0 1920 1080) (mm-size 309 174) (frames) (source . "Gdk")))
(set-frame-position nil 0 0)
t
;; the frame is now in the left-top corner of the laptoop screen (no menu neither dock here)
(pl-lt)
" LEFT=(+ -10) TOP=(+ -8)"
(progn (set-frame-position nil 0 0) (pl-lt))
" LEFT=0 TOP=0"
(pl-lt)
" LEFT=(+ -10) TOP=(+ -8)"
(progn (set-frame-position nil (+ -10) (+ -8)) (pl-lt))
" LEFT=2842 TOP=288"
;; the previous evaluation has moved the frame on the external display close to the right corner
(pl-lt)
" LEFT=2832 TOP=280"
(progn (set-frame-position nil 2832 280) (pl-lt))
" LEFT=2832 TOP=280"
;; the previous sexpevaluation has moved the frame slighly to the left and top
--
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
next prev parent reply other threads:[~2019-12-03 15:04 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <84blspbiy0.fsf@PC-1S0-327.i-did-not-set--mail-host-address--so-tickle-me>
2019-12-02 3:14 ` bug#38452: 26.3; set-frame-position is slightly drifted Pascal Lambrechts
2019-12-02 9:41 ` martin rudalics
[not found] ` <84h82iwio0.fsf@PC-1S0-327.i-did-not-set--mail-host-address--so-tickle-me>
2019-12-03 9:40 ` martin rudalics
2019-12-03 15:04 ` Pascal Lambrechts [this message]
2019-12-03 15:59 ` martin rudalics
2019-12-03 18:18 ` Pascal Lambrechts
2019-12-03 18:37 ` martin rudalics
2019-12-03 18:53 ` Pascal Lambrechts
2019-12-04 9:20 ` martin rudalics
[not found] ` <84eexjjy5g.fsf@PC-1S0-327.i-did-not-set--mail-host-address--so-tickle-me>
2019-12-05 9:06 ` martin rudalics
2019-12-06 9:12 ` Pascal Lambrechts
2019-12-07 9:40 ` martin rudalics
2019-12-07 16:37 ` Pascal Lambrechts
2019-12-08 8:58 ` martin rudalics
2019-12-08 10:02 ` Pascal Lambrechts
2019-12-09 9:20 ` martin rudalics
2022-04-13 2:01 ` Lars Ingebrigtsen
2022-04-13 8:45 ` martin rudalics
2022-04-13 11:55 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=845zixbgbx.fsf@PC-1S0-327.i-did-not-set--mail-host-address--so-tickle-me \
--to=pascal.lambrechts@uclouvain.be \
--cc=38452@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).