all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* "Position Parameters" in lispref/frames.texi
@ 2008-01-21  2:32 Glenn Morris
  2008-01-21  2:44 ` Glenn Morris
  2008-01-21 20:30 ` Richard Stallman
  0 siblings, 2 replies; 9+ messages in thread
From: Glenn Morris @ 2008-01-21  2:32 UTC (permalink / raw)
  To: emacs-devel


I find the documentation of `left' in the `Position Parameters' node
in frames.texi very confusing.

     The value may be a positive number POS, or a list of the form `(+
     POS)' which permits specifying a negative POS value.

What? (+ POS) permits a negative POS value?

     *Reminder:* if the parameter is a negative integer -POS, then POS
     is positive.

What? Is this just trying to explain "-(-1) = +1" ?

I propose just removing these confusing parts. It reads much better
without them.


*** frames.texi	7 Jan 2008 08:49:05 -0000	1.124.2.7
--- frames.texi	21 Jan 2008 02:27:00 -0000
***************
*** 390,404 ****
  @item left
  The screen position of the left edge, in pixels, with respect to the
  left edge of the screen.  The value may be a positive number @var{pos},
! or a list of the form @code{(+ @var{pos})} which permits specifying a
! negative @var{pos} value.
  
  A negative number @minus{}@var{pos}, or a list of the form @code{(-
  @var{pos})}, actually specifies the position of the right edge of the
  window with respect to the right edge of the screen.  A positive value
! of @var{pos} counts toward the left.  @strong{Reminder:} if the
! parameter is a negative integer @minus{}@var{pos}, then @var{pos} is
! positive.
  
  Some window managers ignore program-specified positions.  If you want to
  be sure the position you specify is not ignored, specify a
--- 390,401 ----
  @item left
  The screen position of the left edge, in pixels, with respect to the
  left edge of the screen.  The value may be a positive number @var{pos},
! or a list of the form @code{(+ @var{pos})}.
  
  A negative number @minus{}@var{pos}, or a list of the form @code{(-
  @var{pos})}, actually specifies the position of the right edge of the
  window with respect to the right edge of the screen.  A positive value
! of @var{pos} counts toward the left.
  
  Some window managers ignore program-specified positions.  If you want to
  be sure the position you specify is not ignored, specify a

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

* Re: "Position Parameters" in lispref/frames.texi
  2008-01-21  2:32 "Position Parameters" in lispref/frames.texi Glenn Morris
@ 2008-01-21  2:44 ` Glenn Morris
  2008-01-21  9:32   ` martin rudalics
  2008-01-21 20:30   ` Richard Stallman
  2008-01-21 20:30 ` Richard Stallman
  1 sibling, 2 replies; 9+ messages in thread
From: Glenn Morris @ 2008-01-21  2:44 UTC (permalink / raw)
  To: emacs-devel

Glenn Morris wrote:

>      The value may be a positive number POS, or a list of the form `(+
>      POS)' which permits specifying a negative POS value.
>
> What? (+ POS) permits a negative POS value?

Oh, is it trying to say that (+ -100) will shift the left edge 100
pixels to the _left_ of the left screen edge?

This doesn't actually seem to work right now, which is what I think

http://lists.gnu.org/archive/html/bug-gnu-emacs/2008-01/msg00058.html

is saying.

>      *Reminder:* if the parameter is a negative integer -POS, then POS
>      is positive.

Still can't parse that...

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

* Re: "Position Parameters" in lispref/frames.texi
  2008-01-21  2:44 ` Glenn Morris
@ 2008-01-21  9:32   ` martin rudalics
  2008-01-22  5:50     ` Ulrich Neumerkel
  2008-01-22 11:30     ` Richard Stallman
  2008-01-21 20:30   ` Richard Stallman
  1 sibling, 2 replies; 9+ messages in thread
From: martin rudalics @ 2008-01-21  9:32 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Ulrich Neumerkel, emacs-devel

> Oh, is it trying to say that (+ -100) will shift the left edge 100
> pixels to the _left_ of the left screen edge?

That's how I understand it and how it works here on windows.

> This doesn't actually seem to work right now, which is what I think
>
> http://lists.gnu.org/archive/html/bug-gnu-emacs/2008-01/msg00058.html
>
> is saying.

Does it work for you?  Ulrich Neumerkel promised me to debug this
tomorrow (tuesday).

FWIW, the first "+" and "-" discriminate left vs right (top vs bottom)
screen edges/frame borders.  For example, "left +" specifies the left
frame border "left -" the right one.  (I don't understand why we can't
use right and bottom here.)

The second "+" and "-" indicate an offset where "+" stands for "nearer
to the center of the screen" and "-" for "farther away from the center
of the screen".  That is "left + -7" means the left frame border should
move 7 pixels to the left of the left screen edge, "left - -7" the right
frame border should move 7 pixels to the right of the right screen edge.

All this with the understanding that you cannot specify a position of
the left frame border wrt to the right screen edge.

>>     *Reminder:* if the parameter is a negative integer -POS, then POS
>>     is positive.
>
>
> Still can't parse that...

As for the manual:

In "the position of the right edge of the window with respect to the
right edge of the screen" use "frame" instead of "window".

"The value may be a positive number POS, or a list of the form `(+ POS)'
which permits specifying a negative POS value." doesn't make sense
because the connotation of "negative POS value" is ambiguous here.

"A positive value of POS counts toward the left.  *Reminder:* if the
parameter is a negative integer -POS, then POS is positive." is
ambiguous too.

IMHO, the explanations in section 29.3.5

     `(+ POSITION)'
           This specifies the position of the left or top edge of the
           window relative to the left or top edge of the screen.  The
           integer POSITION may be positive or negative; a negative
           value specifies a position outside the screen.

     `(- POSITION)'
           This specifies the position of the right or bottom edge of
           the window relative to the right or bottom edge of the
           screen.  The integer POSITION may be positive or negative; a
           negative value specifies a position outside the screen.

rate far better in this regard but should talk about "frame" instead of
"window".

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

* Re: "Position Parameters" in lispref/frames.texi
  2008-01-21  2:32 "Position Parameters" in lispref/frames.texi Glenn Morris
  2008-01-21  2:44 ` Glenn Morris
@ 2008-01-21 20:30 ` Richard Stallman
  1 sibling, 0 replies; 9+ messages in thread
From: Richard Stallman @ 2008-01-21 20:30 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

	 The value may be a positive number POS, or a list of the form `(+
	 POS)' which permits specifying a negative POS value.

    What? (+ POS) permits a negative POS value?

Yes.  There are actually two "signs" to specify here:
which edge to count from, and which direction to count in.
A positive number positions the frame left from the screen left.
(+ POSITION) positions the frame left from the screen left,
a and POSITION may be negative.

A negative number positions the frame right edge from the screem right.
(- POSITION) also positions the frame right edge from the screem right,
and allows POSITION to be negative.

    I propose just removing these confusing parts. It reads much better
    without them.

If it is confusing, we should clean it up, but just discarding
this information is not a solution.

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

* Re: "Position Parameters" in lispref/frames.texi
  2008-01-21  2:44 ` Glenn Morris
  2008-01-21  9:32   ` martin rudalics
@ 2008-01-21 20:30   ` Richard Stallman
  1 sibling, 0 replies; 9+ messages in thread
From: Richard Stallman @ 2008-01-21 20:30 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

    Oh, is it trying to say that (+ -100) will shift the left edge 100
    pixels to the _left_ of the left screen edge?

That's what it is supposed to do.  If it does not work, that is a bug.

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

* Re: "Position Parameters" in lispref/frames.texi
  2008-01-21  9:32   ` martin rudalics
@ 2008-01-22  5:50     ` Ulrich Neumerkel
  2008-01-22  6:34       ` Glenn Morris
  2008-01-22 11:30     ` Richard Stallman
  1 sibling, 1 reply; 9+ messages in thread
From: Ulrich Neumerkel @ 2008-01-22  5:50 UTC (permalink / raw)
  To: rgm, rudalics; +Cc: ulrich, emacs-devel

This is only a very superficial comparison.  I compared the current
version (git clone git://git.sv.gnu.org/emacs.git) with the official
21.4 (i.e. 21.4a).

In x_calc_absolute_position the flag is 0x13 in place of 0x3. (If the
flag is set there manually, emacs behaves correctly).  I traced it
backwards towards x_set_offset. Here the change_gravity condition is
executed in the current emacs, but not in 21.4.  I simply redid
the comparison below.  This works now under the following
configurations:

failsafe
qvwm 1.1.12 (Senzoku) [built into IGEL-XTerms]
KDE 2.1.1

However, at startup my geometries Emacs.geometry: 101x39+-6+0 are
still ignored, but this has been the case since some time...
(the last time it worked is 20.7).

diff --git a/src/xterm.c b/src/xterm.c
index 574c398..42b2ac0 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -8366,7 +8366,7 @@ x_set_offset (f, xoff, yoff, change_gravity)
 {
   int modified_top, modified_left;
 
-  if (change_gravity != 0)
+  if (change_gravity > 0)
     {
       FRAME_X_OUTPUT (f)->left_before_move = f->left_pos;
       FRAME_X_OUTPUT (f)->top_before_move = f->top_pos;

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

* Re: "Position Parameters" in lispref/frames.texi
  2008-01-22  5:50     ` Ulrich Neumerkel
@ 2008-01-22  6:34       ` Glenn Morris
  2008-01-22  6:37         ` Ulrich Neumerkel
  0 siblings, 1 reply; 9+ messages in thread
From: Glenn Morris @ 2008-01-22  6:34 UTC (permalink / raw)
  To: Ulrich Neumerkel; +Cc: rudalics, emacs-devel

Ulrich Neumerkel wrote:

> -  if (change_gravity != 0)
> +  if (change_gravity > 0)

Thank you; making that changes also fixes it for me (Window Maker on
GNU/Linux). This change was introduced 2006-06-16, with the log entry
"Extensive changes to make frame positioning deterministic under X.",
which doesn't tell me anything.

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

* Re: "Position Parameters" in lispref/frames.texi
  2008-01-22  6:34       ` Glenn Morris
@ 2008-01-22  6:37         ` Ulrich Neumerkel
  0 siblings, 0 replies; 9+ messages in thread
From: Ulrich Neumerkel @ 2008-01-22  6:37 UTC (permalink / raw)
  To: rgm, ulrich; +Cc: rudalics, emacs-devel

> Thank you; making that changes also fixes it for me (Window Maker on                                                  > GNU/Linux). This change was introduced 2006-06-16, with the log entry                                                 > "Extensive changes to make frame positioning deterministic under X.",                                                 >which doesn't tell me anything.

! The intention seems to be to encode with negative numbers something
else (see the comment just before x_set_offset:  ...
It is -1 when calling from x_set_frame_parameters, ...

So there is some intention behind it - probably something more general
must be fixed to solve this in general.

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

* Re: "Position Parameters" in lispref/frames.texi
  2008-01-21  9:32   ` martin rudalics
  2008-01-22  5:50     ` Ulrich Neumerkel
@ 2008-01-22 11:30     ` Richard Stallman
  1 sibling, 0 replies; 9+ messages in thread
From: Richard Stallman @ 2008-01-22 11:30 UTC (permalink / raw)
  To: martin rudalics; +Cc: rgm, emacs-devel, ulrich

    FWIW, the first "+" and "-" discriminate left vs right (top vs bottom)
    screen edges/frame borders.  For example, "left +" specifies the left
    frame border "left -" the right one.  (I don't understand why we can't
    use right and bottom here.)

It would be natural to use `right' and `bottom' if these were just
arguments to a function.  But they are frame parameters.  If we want
the horizontal position to have two possible frame parameters, `left'
and `right', we would have to arrange to return the proper one, etc.
It would be rather complex.

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

end of thread, other threads:[~2008-01-22 11:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-21  2:32 "Position Parameters" in lispref/frames.texi Glenn Morris
2008-01-21  2:44 ` Glenn Morris
2008-01-21  9:32   ` martin rudalics
2008-01-22  5:50     ` Ulrich Neumerkel
2008-01-22  6:34       ` Glenn Morris
2008-01-22  6:37         ` Ulrich Neumerkel
2008-01-22 11:30     ` Richard Stallman
2008-01-21 20:30   ` Richard Stallman
2008-01-21 20:30 ` Richard Stallman

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.