* "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.