unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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.





       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).