From: Drew Adams <drew.adams@oracle.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 18637@debbugs.gnu.org
Subject: bug#18637: 24.4.50; doc of frame parameter DISPLAY vs actual value on MS Windows
Date: Tue, 7 Oct 2014 11:12:56 -0700 (PDT) [thread overview]
Message-ID: <41484edb-9aaa-4f56-bf46-4ab70b609aac@default> (raw)
In-Reply-To: <<83tx3flxn2.fsf@gnu.org>>
> That's my understanding as well, but someone who has access to such
> a system should actually try that and report back.
>
> > I guess that would mean that frame-position coordinates (`left',
> > `top') are then interpreted relative to that other monitor (?).
> > Is that right?
>
> No, I think they are "ignored". That is, the coordinates are
> interpreted in the virtual coordinate system, but then Windows
> decides on its own how to position the frame, using the criterion
> described above.
By "criterion described above, do you mean just based on which monitor
is showing more of the frame?
(Note too that I am using MS Windows, but the OP who reported the
problem is, I think, not on Windows.)
> > Here is what I guess I still do not understand. Are the values of
> > `left' etc. frame parameters relative to just the virtual display
> > (which is the envelope of all of the monitors, at least on
> > Windows)?
>
> Yes, according to my reading of the code and the MSDN documentation.
> But again, actually trying that will bring a much more reliable
> information.
>
> > But if that were the case then I would think that restoring a
> > recorded `left' etc. parameter later would put the frame back
> > where it was, which is apparently not what is happening.
>
> Except that Windows has its own rules, see above, at least when you
> create a frame that didn't exist (i.e. restore it from information
> recorded in some file).
This code does not create any new frames. It just calls
`modify-frame-parameters' on an existing frame, setting its `left',
`top', `width', and `height' parameters.
> > The Windows doc you pointed to also says that the primary monitor
> > is not necessarily at the left. So if `left' etc were not
> > absolute but relative to the monitor origin then maybe this is what
> > happened:
> >
> > 1. The OP had a frame in the left monitor, but the right monitor
> > was primary. Since the primary monitor has the virtual screen's
> > origin at its top left, positions in the left monitor would have
> > negative horizontal positions.
> >
> > Dunno whether that means they should also have negative `left'
> > positions, for Emacs. If `left' etc. are relative to the
> > virtual screen then yes, they would. If `left' etc. is relative
> > to the current monitor then no, they would not.
>
> Again, my understanding is that they are relative to the visrtual
> coordinate system.
>
> > The relevant code snippet is what I sent earlier
> > (`frcmds-available-screen-pixel-bounds'), plus functions
> > `maximize-frame' and `restore-frame', here:
> > http://www.emacswiki.org/emacs-en/download/frame-cmds.el
> >
> > In those two commands I do the following.
> >
> > For `maximize-frame':
> >
> > 1. Save the current `left' etc. as parameters `restore-left' etc.
> > 2. Calculate the available screen size, using
> > `frcmds-available-screen-pixel-bounds'.
> > 3. Set `left' and `top' both to 0 and `width' and `height' to the
> > calculated screen size.
> >
> > For `restore-frame':
> >
> > Restore `left' etc. from the saved values `restore-left' etc.
>
> That's a lot of code, and I have no way of trying it.
If you are interested, you can try it easily, by downloading these
two files:
http://www.emacswiki.org/emacs-en/download/frame-cmds.el
http://www.emacswiki.org/emacs-en/download/frame-fns.el
> I think at this stage it is best for the user in question to try
> some simple code that reports frame coordinates and creates a frame
> given specific coordinates, and then see what that means for us.
I've sent him a mail, but I don't know whether he will have the time
or interest to follow up on this.
> Oh, and I think this is no longer about the docs, so probably a new
> bug report is in order, specifically about restoring frames on
> multi-monitor displays.
Agreed. And thanks for your input.
next parent reply other threads:[~2014-10-07 18:12 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <<c75b3094-d24b-4949-9c1e-b513c0b5bed7@default>
[not found] ` <<ce89167f-4906-496e-9ace-4d51e1741311@default>
[not found] ` <<83tx3flxn2.fsf@gnu.org>
2014-10-07 18:12 ` Drew Adams [this message]
2014-10-07 18:26 ` bug#18637: 24.4.50; doc of frame parameter DISPLAY vs actual value on MS Windows Eli Zaretskii
[not found] ` <<41484edb-9aaa-4f56-bf46-4ab70b609aac@default>
[not found] ` <<8361fvlos0.fsf@gnu.org>
2014-10-07 18:31 ` Drew Adams
[not found] <<b5ac6ce3-5c0d-4517-a44f-6925cfccdcfd@default>
[not found] ` <<837g0dm95c.fsf@gnu.org>
2014-10-06 17:25 ` Drew Adams
2014-10-05 19:23 ` Drew Adams
2014-10-05 19:30 ` Eli Zaretskii
2014-10-05 19:44 ` Eli Zaretskii
2014-10-06 18:08 ` Andy Moreton
2014-10-06 18:23 ` Drew Adams
2014-10-07 18:35 ` Andy Moreton
2014-10-07 20:25 ` Drew Adams
2014-10-06 19:29 ` Eli Zaretskii
2014-10-06 20:52 ` Drew Adams
2014-10-07 15:14 ` Eli Zaretskii
[not found] <<b3d0f532-3b29-43d3-a41d-6687886307dc@default>
[not found] ` <<83ppe5mfed.fsf@gnu.org>
2014-10-06 16:31 ` Drew Adams
2014-10-06 16:54 ` Eli Zaretskii
[not found] <<12fc196e-cc82-4f22-8d2f-cede95542ea7@default>
[not found] ` <<83vbnymi0h.fsf@gnu.org>
[not found] ` <<83tx3imhdg.fsf@gnu.org>
2014-10-06 2:55 ` Drew Adams
2014-10-06 14:39 ` Eli Zaretskii
2014-10-06 16:34 ` Stefan Monnier
2014-10-06 2:55 ` Drew Adams
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=41484edb-9aaa-4f56-bf46-4ab70b609aac@default \
--to=drew.adams@oracle.com \
--cc=18637@debbugs.gnu.org \
--cc=eliz@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).