unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
@ 2014-10-05 19:05       ` Drew Adams
  2014-10-05 19:27         ` Eli Zaretskii
  2014-10-08 10:44         ` Andy Moreton
  0 siblings, 2 replies; 10+ messages in thread
From: Drew Adams @ 2014-10-05 19:05 UTC (permalink / raw)
  To: 18636

I find it unclear that the optional parameter of
`display-monitor-attributes-list' is named DISPLAY, and is referred to
as a display in the doc string, and yet in `frame-monitor-attributes'
it is arg FRAME that is passed to `display-monitor-attributes-list'.

Is the argument of `display-monitor-attributes-list' a display or a
frame?

What about other functions, such as `display-pixel-height', which call
`display-monitor-attributes-list'?  They seem to pass their DISPLAY arg
to it.  Is this arg too something that can be (or is always?) a frame?
The doc string of `display-pixel-height' (for example) says:

  "If DISPLAY is omitted or nil, it defaults to the selected frame's
   display."

That would seem to suggest that a frame is not a display, but rather it
_has_ a display.

And there is a frame parameter `display', whose value is "The display on
which to open this frame.  It should be a string of the form
`"HOST:DPY.SCREEN"', just like the `DISPLAY' environment variable.

This suggests that a display is not a frame.  So how is it that
`frame-monitor-attributes' passes a FRAME to
`display-monitor-attributes-list', which supposedly expects a display
instead?

Please try to clear up some of this confusion in the doc and doc
strings.


In GNU Emacs 24.4.50.1 (i686-pc-mingw32)
 of 2014-09-15 on LEG570
Bzr revision: 117884 dancol@dancol.org-20140915050944-sqsajysnwef51f9m
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --enable-checking 'CFLAGS=-O0 -g3' CPPFLAGS=-DGLYPH_DEBUG=1'





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
  2014-10-05 19:05       ` Drew Adams
@ 2014-10-05 19:27         ` Eli Zaretskii
  2014-10-08 10:44         ` Andy Moreton
  1 sibling, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2014-10-05 19:27 UTC (permalink / raw)
  To: Drew Adams; +Cc: 18636

> Date: Sun, 5 Oct 2014 12:05:19 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> 
> I find it unclear that the optional parameter of
> `display-monitor-attributes-list' is named DISPLAY, and is referred to
> as a display in the doc string, and yet in `frame-monitor-attributes'
> it is arg FRAME that is passed to `display-monitor-attributes-list'.
> 
> Is the argument of `display-monitor-attributes-list' a display or a
> frame?

It can be either.

> What about other functions, such as `display-pixel-height', which call
> `display-monitor-attributes-list'?  They seem to pass their DISPLAY arg
> to it.  Is this arg too something that can be (or is always?) a frame?
> The doc string of `display-pixel-height' (for example) says:
> 
>   "If DISPLAY is omitted or nil, it defaults to the selected frame's
>    display."
> 
> That would seem to suggest that a frame is not a display, but rather it
> _has_ a display.

A frame is not a display, but these functions accept either one.

If you make a list of the functions where the doc string is not
explicit about this fact, I will fix them.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
       [not found] ` <<83wq8emi60.fsf@gnu.org>
@ 2014-10-06  2:41   ` Drew Adams
  2014-10-08 10:24     ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Drew Adams @ 2014-10-06  2:41 UTC (permalink / raw)
  To: Eli Zaretskii, Drew Adams; +Cc: 18636

> > I find it unclear that the optional parameter of
> > `display-monitor-attributes-list' is named DISPLAY, and is
> > referred to as a display in the doc string, and yet in
> > `frame-monitor-attributes' it is arg FRAME that is passed
> > to `display-monitor-attributes-list'.
> >
> > Is the argument of `display-monitor-attributes-list' a
> > display or a frame?
> 
> It can be either.

OK.  Then the doc should say so.  And it should call out the
relation between the two.  For example, if a frame is passed
and its display is used (= its `display' frame parameter),
then say so.

> > What about other functions, such as `display-pixel-height', which
> > call `display-monitor-attributes-list'?  They seem to pass their
> > DISPLAY arg to it.  Is this arg too something that can be (or
> > is always?) a frame? The doc string of `display-pixel-height'
> > (for example) says:
> >
> >   "If DISPLAY is omitted or nil, it defaults to the selected
> >    frame's display."
> >
> > That would seem to suggest that a frame is not a display, but
> > rather it _has_ a display.
> 
> A frame is not a display, but these functions accept either one.

Their doc should say so.

> If you make a list of the functions where the doc string is not
> explicit about this fact, I will fix them.

Thank you.  I think this is the case for all of the 20 functions
described in (elisp) `Display Feature Testing', but there might
be others as well.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
  2014-10-06  2:41   ` bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME? Drew Adams
@ 2014-10-08 10:24     ` Eli Zaretskii
  2014-10-05 19:05       ` Drew Adams
  0 siblings, 1 reply; 10+ messages in thread
From: Eli Zaretskii @ 2014-10-08 10:24 UTC (permalink / raw)
  To: Drew Adams; +Cc: 18636-done

> Date: Sun, 5 Oct 2014 19:41:21 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 18636@debbugs.gnu.org
> 
> > > I find it unclear that the optional parameter of
> > > `display-monitor-attributes-list' is named DISPLAY, and is
> > > referred to as a display in the doc string, and yet in
> > > `frame-monitor-attributes' it is arg FRAME that is passed
> > > to `display-monitor-attributes-list'.
> > >
> > > Is the argument of `display-monitor-attributes-list' a
> > > display or a frame?
> > 
> > It can be either.
> 
> OK.  Then the doc should say so.

Done on the emacs-24 branch (revision 117559).

> And it should call out the
> relation between the two.  For example, if a frame is passed
> and its display is used (= its `display' frame parameter),
> then say so.

That's not what happens, though.  Each function extracts the info it
needs from whatever kind of argument it is passed, and then uses that
info.

> > > What about other functions, such as `display-pixel-height', which
> > > call `display-monitor-attributes-list'?  They seem to pass their
> > > DISPLAY arg to it.  Is this arg too something that can be (or
> > > is always?) a frame? The doc string of `display-pixel-height'
> > > (for example) says:
> > >
> > >   "If DISPLAY is omitted or nil, it defaults to the selected
> > >    frame's display."
> > >
> > > That would seem to suggest that a frame is not a display, but
> > > rather it _has_ a display.
> > 
> > A frame is not a display, but these functions accept either one.
> 
> Their doc should say so.

Done.

> > If you make a list of the functions where the doc string is not
> > explicit about this fact, I will fix them.
> 
> Thank you.  I think this is the case for all of the 20 functions
> described in (elisp) `Display Feature Testing', but there might
> be others as well. 

Done.

> > > In (elisp) `Basic Parameters' I see this description of frame
> > > parameter `display':
> > >
> > >   The display on which to open this frame.  It should be a string
> > >   of the form `"HOST:DPY.SCREEN"', just like the `DISPLAY'
> > >   environment variable.
> > >
> > > But if I evaluate `(frame-parameters)' on MS Windows I see this
> > > value for parameter `display': "w32".
> > >
> > > "w32" does not seem to fit the form `"HOST:DPY.SCREEN"'.  What
> > > gives?
> > 
> > Emacs on MS-Windows doesn't support the notion of 'display', so all
> > frames return the same value of that parameter.
> 
> OK, then the doc should mention this, or at least say that the
> string might not take the form "HOST:DPY.SCREEN" on some platforms,
> and preferably say something about what to expect on the
> exceptional platforms (and perhaps give some idea of what use the
> exceptional value is - what it can be used for, or what info it
> conveys).

Done.

> > > And why is that string surrounded by `...'?
> > 
> > An artifact of Texinfo markup.
> 
> I see.  Is that then correct, or should the `...' be absent?
> There are strings in the manual that are not surrounded by `...'.

I fixed the markup.

> > > And why aren't the components of that "form" described: What are
> > > acceptable values for HOST, DPY, and SCREEN?
> > 
> > Users on X already know what they are; users on other systems don't
> > need to know, because this is not supported.  Either way, this
> > notion is not an Emacs invention, it is a feature of the X
> > window system.
> 
> Then please say that.  E.g., say that the value is useful only for
> X Window, or only relevant for it.  If the function itself has no
> use beyond X Window, then please make that clear.

Done, and also improved the description of the X form.

> From: Andy Moreton <andrewjmoreton@gmail.com>
> Date: Tue, 07 Oct 2014 19:35:28 +0100
> 
> > 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.

> True, as long as the meaning of geometry/workarea and the coordinate
> system are given a little more detail in the docs.

Done.

I'm closing this bug.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
  2014-10-05 19:05       ` Drew Adams
  2014-10-05 19:27         ` Eli Zaretskii
@ 2014-10-08 10:44         ` Andy Moreton
  2014-10-08 11:17           ` Eli Zaretskii
  1 sibling, 1 reply; 10+ messages in thread
From: Andy Moreton @ 2014-10-08 10:44 UTC (permalink / raw)
  To: 18636

On Wed 08 Oct 2014, Eli Zaretskii wrote:

> Done on the emacs-24 branch (revision 117559).

Thanks for doing this Eli. The lisp example you added for
'display-monitor-attributes-list' contains a typo from my email:

(((geometry 0 0 1920 1080)   ;; Left hand monitor
  (workarea 0 0 1920 1050)   ;; Bottom of screen used for task bar
  task bar

The third line containing "task bar" should be removed as it should have
been part of the comment on the previous line. Sorry!

    AndyM






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
  2014-10-08 10:44         ` Andy Moreton
@ 2014-10-08 11:17           ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2014-10-08 11:17 UTC (permalink / raw)
  To: Andy Moreton; +Cc: 18636

> From: Andy Moreton <andrewjmoreton@gmail.com>
> Date: Wed, 08 Oct 2014 11:44:45 +0100
> 
> On Wed 08 Oct 2014, Eli Zaretskii wrote:
> 
> > Done on the emacs-24 branch (revision 117559).
> 
> Thanks for doing this Eli. The lisp example you added for
> 'display-monitor-attributes-list' contains a typo from my email:
> 
> (((geometry 0 0 1920 1080)   ;; Left hand monitor
>   (workarea 0 0 1920 1050)   ;; Bottom of screen used for task bar
>   task bar
> 
> The third line containing "task bar" should be removed as it should have
> been part of the comment on the previous line. Sorry!

Thanks, fixed.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
       [not found] ` <<83oatmkgfy.fsf@gnu.org>
@ 2014-10-08 13:20   ` Drew Adams
  2014-10-08 13:32     ` Eli Zaretskii
       [not found]   ` <<986f56fa-af7e-4843-a0fa-047b2f49fb18@default>
  1 sibling, 1 reply; 10+ messages in thread
From: Drew Adams @ 2014-10-08 13:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 18636-done

> > > > Is the argument of `display-monitor-attributes-list' a
> > > > display or a frame?
> > >
> > > It can be either.
> > OK.  Then the doc should say so.
> Done on the emacs-24 branch (revision 117559).

Thanks.

> > And it should call out the
> > relation between the two.  For example, if a frame is passed
> > and its display is used (= its `display' frame parameter),
> > then say so.
> 
> That's not what happens, though.  Each function extracts the info it
> needs from whatever kind of argument it is passed, and then uses
> that info.

I said, "For example". Whatever the actual relation between the
two is, it should be described.  (Descriptions like "the information
it needs" and "that info" are OK for here, but would not be helpful
in the doc string.)

> Done.
> Done.
> Done.
> I fixed the markup.
> Done, and also improved the description of the X form.
> Done.

Thx * 6.

> I'm closing this bug.

Great. Thanks. (Haven't seen the result yet, but I'm sure it's good.)





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
  2014-10-08 13:20   ` Drew Adams
@ 2014-10-08 13:32     ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2014-10-08 13:32 UTC (permalink / raw)
  To: Drew Adams; +Cc: 18636

> Date: Wed, 8 Oct 2014 06:20:49 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 18636-done@debbugs.gnu.org
> 
> > > And it should call out the
> > > relation between the two.  For example, if a frame is passed
> > > and its display is used (= its `display' frame parameter),
> > > then say so.
> > 
> > That's not what happens, though.  Each function extracts the info it
> > needs from whatever kind of argument it is passed, and then uses
> > that info.
> 
> I said, "For example". Whatever the actual relation between the
> two is, it should be described.  (Descriptions like "the information
> it needs" and "that info" are OK for here, but would not be helpful
> in the doc string.)

I'm not sure what you think the documentation should tell about this,
and why.  Each function needs something different from its argument;
surely, describing all that in the doc string is counter-productive.
Whoever needs those details, should read the code.

IOW, what other details are required to correctly invoke and use these
functions?





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
       [not found]     ` <<83a956k7pl.fsf@gnu.org>
@ 2014-10-08 14:04       ` Drew Adams
  2014-10-08 14:10         ` Eli Zaretskii
  0 siblings, 1 reply; 10+ messages in thread
From: Drew Adams @ 2014-10-08 14:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 18636

> > > > And it should call out the
> > > > relation between the two.  For example, if a frame is passed
> > > > and its display is used (= its `display' frame parameter),
> > > > then say so.
> > >
> > > That's not what happens, though.  Each function extracts the
> > > info it needs from whatever kind of argument it is passed, and
> > > then uses that info.
> >
> > I said, "For example". Whatever the actual relation between the
> > two is, it should be described.  (Descriptions like "the
> > information it needs" and "that info" are OK for here, but would
> > not be helpful in the doc string.)
> 
> I'm not sure what you think the documentation should tell about
> this, and why.  Each function needs something different from its argument;
> surely, describing all that in the doc string is counter-productive.
> Whoever needs those details, should read the code.
> 
> IOW, what other details are required to correctly invoke and use
> these functions?

Dunno what other details are needed to understand these functions.
That was the point.

I'm not looking for implementation details.  I'm guessing that a
description of the function, and a good understanding of it, involves
some description/understanding of the argument and what it means
to the function.  What the function needs it for - not in terms of
just what it does with it, but in logical terms - why it is required.

Maybe no more info is needed - dunno.  But usually a user can tell
why a given argument might have a value of different types, e.g. a
buffer or a string that names a buffer.  The connection here, between
a frame arg value and a display arg value, is not obvious.  I was
guessing that what the function needs, ultimately, is a display, and
that if given a frame it uses the frame's display.  But apparently 
that is not the connection.

I'm in the dark on this.  Use your own judgment.  If you think
nothing is unclear or missing, that's good enough for me.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME?
  2014-10-08 14:04       ` Drew Adams
@ 2014-10-08 14:10         ` Eli Zaretskii
  0 siblings, 0 replies; 10+ messages in thread
From: Eli Zaretskii @ 2014-10-08 14:10 UTC (permalink / raw)
  To: Drew Adams; +Cc: 18636

> Date: Wed, 8 Oct 2014 07:04:51 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 18636@debbugs.gnu.org
> 
> > IOW, what other details are required to correctly invoke and use
> > these functions?
> 
> Dunno what other details are needed to understand these functions.
> That was the point.
> 
> I'm not looking for implementation details.  I'm guessing that a
> description of the function, and a good understanding of it, involves
> some description/understanding of the argument and what it means
> to the function.  What the function needs it for - not in terms of
> just what it does with it, but in logical terms - why it is required.
> 
> Maybe no more info is needed - dunno.  But usually a user can tell
> why a given argument might have a value of different types, e.g. a
> buffer or a string that names a buffer.  The connection here, between
> a frame arg value and a display arg value, is not obvious.  I was
> guessing that what the function needs, ultimately, is a display, and
> that if given a frame it uses the frame's display.  But apparently 
> that is not the connection.
> 
> I'm in the dark on this.  Use your own judgment.  If you think
> nothing is unclear or missing, that's good enough for me.

In my judgment, nothing else is needed.  Most functions just need the
type of the frames on display, which can be gleaned from any of the
possible argument types.  The other need the screen used by the
display, which again can be gotten from any argument type.

IOW, these arguments serve as proxies to the information needed by the
functions.





^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-10-08 14:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <<2382b3a5-6047-4b89-b211-3fef04714ae4@default>
     [not found] ` <<83wq8emi60.fsf@gnu.org>
2014-10-06  2:41   ` bug#18636: 24.4.50; doc of `display-monitor-attributes-list' - DISPLAY? FRAME? Drew Adams
2014-10-08 10:24     ` Eli Zaretskii
2014-10-05 19:05       ` Drew Adams
2014-10-05 19:27         ` Eli Zaretskii
2014-10-08 10:44         ` Andy Moreton
2014-10-08 11:17           ` Eli Zaretskii
     [not found] <<2cb10ab0-7eb3-43a8-9fc2-72374602b55f@default>
     [not found] ` <<83oatmkgfy.fsf@gnu.org>
2014-10-08 13:20   ` Drew Adams
2014-10-08 13:32     ` Eli Zaretskii
     [not found]   ` <<986f56fa-af7e-4843-a0fa-047b2f49fb18@default>
     [not found]     ` <<83a956k7pl.fsf@gnu.org>
2014-10-08 14:04       ` Drew Adams
2014-10-08 14:10         ` Eli Zaretskii

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