unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* windmove and the minibuffer
@ 2003-05-26 17:52 Alex Schroeder
  2003-05-27  8:03 ` Juanma Barranquero
  2003-05-28  2:16 ` Luc Teirlinck
  0 siblings, 2 replies; 28+ messages in thread
From: Alex Schroeder @ 2003-05-26 17:52 UTC (permalink / raw)


Did anybody note that using windmove (windmove-default-keybindings) no
longer allows you to reach the minibuffer window (using S-down) --
eventhough you can leave the minibuffer window (using S-up)?  I think
this should be possible.

I often need to move back to the minibuffer because I have some
aborted M-x command or similar "hanging" there, and hitting C-g in
other windows will not abort it.

Alex.
-- 
http://www.emacswiki.org/cgi-bin/alex.pl

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

* Re: windmove and the minibuffer
  2003-05-26 17:52 Alex Schroeder
@ 2003-05-27  8:03 ` Juanma Barranquero
  2003-05-27 17:25   ` Alex Schroeder
  2003-05-28  2:16 ` Luc Teirlinck
  1 sibling, 1 reply; 28+ messages in thread
From: Juanma Barranquero @ 2003-05-27  8:03 UTC (permalink / raw)
  Cc: emacs-devel


On Mon, 26 May 2003 19:52:38 +0200
Alex Schroeder <alex@gnu.org> wrote:

> Did anybody note that using windmove (windmove-default-keybindings) no
> longer allows you to reach the minibuffer window (using S-down) --
> eventhough you can leave the minibuffer window (using S-up)?

Unless I'm misunderstanding something, I *can* go to the minibuffer and
back with S-down / S-up (H-down / H-up, in fact, that's what I use).


                                                                Juanma

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

* Re: windmove and the minibuffer
  2003-05-27  8:03 ` Juanma Barranquero
@ 2003-05-27 17:25   ` Alex Schroeder
  2003-05-27 21:59     ` Juanma Barranquero
  0 siblings, 1 reply; 28+ messages in thread
From: Alex Schroeder @ 2003-05-27 17:25 UTC (permalink / raw)
  Cc: emacs-devel

Juanma Barranquero <jmbarranquero@laley.wke.es> writes:

> Unless I'm misunderstanding something, I *can* go to the minibuffer and
> back with S-down / S-up (H-down / H-up, in fact, that's what I use).

Weird.  Let me give you an exact script, to see whether your system
really is different:

Run emacs -q
M-x windmove-default-keybindings
C-x C-f (you should be in the minibuffer, now)
S-up (you should be in *scratch*, now)
S-down (I am still in *scratch*, eventhough I want to be in the minibuffer)

Alex
-- 
http://www.emacswiki.org/cgi-bin/alex.pl

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

* Re: windmove and the minibuffer
  2003-05-27 17:25   ` Alex Schroeder
@ 2003-05-27 21:59     ` Juanma Barranquero
  2003-05-27 23:04       ` Luc Teirlinck
  0 siblings, 1 reply; 28+ messages in thread
From: Juanma Barranquero @ 2003-05-27 21:59 UTC (permalink / raw)
  Cc: Juanma Barranquero

On Tue, 27 May 2003 19:25:08 +0200, Alex Schroeder <alex@gnu.org> wrote:

> Weird.  Let me give you an exact script, to see whether your system
> really is different:
> 
> Run emacs -q
> M-x windmove-default-keybindings
> C-x C-f (you should be in the minibuffer, now)
> S-up (you should be in *scratch*, now)
> S-down (I am still in *scratch*, eventhough I want to be in the minibuffer)

Yes, I go back to the minibuffer after the S-down.

"This is GNU Emacs 21.3.50.1 (i386-msvc-nt5.1.2600)
of 2003-05-27 on CASA"

(i.e., Emacs from yesterday's CVS HEAD, compiled on Windows XP with
Visual Studio .NET).


                                                           /L/e/k/t/u

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

* Re: windmove and the minibuffer
  2003-05-27 21:59     ` Juanma Barranquero
@ 2003-05-27 23:04       ` Luc Teirlinck
  0 siblings, 0 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-05-27 23:04 UTC (permalink / raw)
  Cc: jmbarranquero

Juanma Barrranquero wrote:

   On Tue, 27 May 2003 19:25:08 +0200, Alex Schroeder <alex@gnu.org> wrote:

   > Weird.  Let me give you an exact script, to see whether your system
   > really is different:
   > 
   > Run emacs -q
   > M-x windmove-default-keybindings
   > C-x C-f (you should be in the minibuffer, now)
   > S-up (you should be in *scratch*, now)
   > S-down (I am still in *scratch*, eventhough I want to be in the minibuffer)

   Yes, I go back to the minibuffer after the S-down.

   "This is GNU Emacs 21.3.50.1 (i386-msvc-nt5.1.2600)
   of 2003-05-27 on CASA"

   (i.e., Emacs from yesterday's CVS HEAD, compiled on Windows XP with
   Visual Studio .NET).

That *is* weird because I can reproduce he bug, in CVS downloaded just
moments ago.  In fact, the following line is from the *Messages*
buffer immediately after the exercise:

windmove-do-window-select: No window at down

It is hard to see why this should be operating system dependent.

(emacs-version)

"GNU Emacs 21.3.50.89 (i686-pc-linux-gnu, X toolkit)\n of 2003-05-27
on swt40.swt.com"

This is RedHat 7.2.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-05-26 17:52 Alex Schroeder
  2003-05-27  8:03 ` Juanma Barranquero
@ 2003-05-28  2:16 ` Luc Teirlinck
  2003-05-28  7:00   ` Juanma Barranquero
  1 sibling, 1 reply; 28+ messages in thread
From: Luc Teirlinck @ 2003-05-28  2:16 UTC (permalink / raw)
  Cc: emacs-devel

Alex Schroeder wrote:

   Did anybody note that using windmove (windmove-default-keybindings) no
   longer allows you to reach the minibuffer window (using S-down) --
   eventhough you can leave the minibuffer window (using S-up)?

The bug does not seem to be extremely recent.  It already occurs in
Emacs21.3.  (The released one, not 21.3.50.)  Whether the bug occurs
or not and in which form seems to depend on the frame geometry, which
probably explains why you and me are seeing the bug and Juanma is not.
I am personally not sufficiently familiar with windmove.el to debug
it.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
       [not found] <E19KknO-0004NB-Qx@monty-python.gnu.org>
@ 2003-05-28  6:11 ` Lars Hansen
  0 siblings, 0 replies; 28+ messages in thread
From: Lars Hansen @ 2003-05-28  6:11 UTC (permalink / raw)


>
>
>Weird.  Let me give you an exact script, to see whether your system
>really is different:
>  
>
This thing is system dependent, and it is not new, it was there in 21.2 
as well:

On Windows (GNU Emacs 21.2.1 (i386-msvc-windows98.3000) of 2002-03-19 on 
buffy):

I can move out of, and into an active minibuffer.
If I try to move into an inactive minibuffer, I get:
"windmove-do-window-select: Can't move to inactive minibuffer"

On GNU/Linux (GNU Emacs 21.2.1 (i586-suse-linux, X toolkit, Xaw3d scroll 
bars) of 2002-09-11 on amdsimb):

I can move out of, but *not* into an active minibuffer.
If I try to move into an inactive minibuffer, I get *no* message.

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

* Re: windmove and the minibuffer
  2003-05-28  2:16 ` Luc Teirlinck
@ 2003-05-28  7:00   ` Juanma Barranquero
  2003-05-28 19:27     ` Luc Teirlinck
  0 siblings, 1 reply; 28+ messages in thread
From: Juanma Barranquero @ 2003-05-28  7:00 UTC (permalink / raw)
  Cc: emacs-devel


On Tue, 27 May 2003 21:16:27 -0500 (CDT)
Luc Teirlinck <teirllm@dms.auburn.edu> wrote:

> Whether the bug occurs
> or not and in which form seems to depend on the frame geometry, which
> probably explains why you and me are seeing the bug and Juanma is not.

I've tried also with an Emacs built (and running) on W2K and it works
right too.

I tried deleting the HKLM\Software\GNU\Emacs registry branch so emacs -q
--no-site-file starts with the cleanest posible environment. It still
works.

                                                                Juanma

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

* Re: windmove and the minibuffer
  2003-05-28  7:00   ` Juanma Barranquero
@ 2003-05-28 19:27     ` Luc Teirlinck
  2003-05-28 20:11       ` Luc Teirlinck
  2003-05-28 23:05       ` Juanma Barranquero
  0 siblings, 2 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-05-28 19:27 UTC (permalink / raw)
  Cc: emacs-devel

The reason for the bug is that `windmove-find-other-window' passes
coordinates to `window-at' that are both one to small.  (Or is the bug
in `window-at'?  In that case there probably also is a related bug in
`coordinates-in-window-p'.)

Could you (or somebody with access to a Microsoft Windows machine)
repeat the following exercise:

Start emacs-21.3.50 -q --eval "(blink-cursor-mode 0)" &
 
(The eval is not necessary for people whose neurological system does
not get affected by blinking cursors.)

M-x scroll-bar-mode
M-x fringe-mode
M-x tool-bar-mode
M-x menu-bar-mode

Just to simplify the picture and make sure all that stuff has nothing
to do with the problem.

(window-at 0 15)

Result: nil

(window-at 1 (window-height)) 

Result: #<window 3 on *scratch*>

(window-at 0 (window-height))

Result: nil. 

Unfortunately, with point at the beginning of the scratch buffer,
these are the coordinates that `windmove-find-other-window' passes to
window-at.  Replacing 0 by 1 would get rid of the error message, but
would still leave point in scratch.  Actually, that is what happens
if you move point away from the beginning of the line.

(window-at 1 (1+ (window-height)))

#<window 4 on  *Minibuf-0*>

Obviously, these are the coordinates it should pass.
(or is it `window-at' that gets it wrong?  Its documentation looks
ambiguous to me.)

If any of these results are different on a Microsoft Windows machine,
then that explains the difference in behavior.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-05-28 19:27     ` Luc Teirlinck
@ 2003-05-28 20:11       ` Luc Teirlinck
  2003-05-28 22:41         ` Juanma Barranquero
  2003-05-31 19:52         ` Richard Stallman
  2003-05-28 23:05       ` Juanma Barranquero
  1 sibling, 2 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-05-28 20:11 UTC (permalink / raw)
  Cc: jmbarranquero

I am now convinced that the bug is not in windmove, but in `window-at'
and `coordinates-in-window-p'.

Indeed, the documentation of `window-at' is rather ambiguous but doing
C-h f coordinates-in-window-p, we see:

(0 .  0) denotes the character in the upper left corner of the
frame. 

This seems to clearly imply that after:

emacs-21.3.50 -q --eval "(blink-cursor-mode 0)" &
M-x scroll-bar-mode
M-x fringe-mode
M-x tool-bar-mode
M-x menu-bar-mode

(coordinates-in-window-p '(0 . 0) (selected-window))

should not return nil.  But it does, at least on GNU/Linux.  What
happens on MS Windows?

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-05-28 20:11       ` Luc Teirlinck
@ 2003-05-28 22:41         ` Juanma Barranquero
  2003-05-28 22:55           ` Luc Teirlinck
  2003-05-31 19:52         ` Richard Stallman
  1 sibling, 1 reply; 28+ messages in thread
From: Juanma Barranquero @ 2003-05-28 22:41 UTC (permalink / raw)


On Wed, 28 May 2003 15:11:39 -0500 (CDT), Luc Teirlinck <teirllm@dms.auburn.edu> wrote:

> emacs-21.3.50 -q --eval "(blink-cursor-mode 0)" &
> M-x scroll-bar-mode
> M-x fringe-mode
> M-x tool-bar-mode
> M-x menu-bar-mode

I suppose the idea is deactivating scroll-bar, fringe, tool-bar and menu,
right?

> (coordinates-in-window-p '(0 . 0) (selected-window))
> 
> should not return nil.  But it does, at least on GNU/Linux.  What
> happens on MS Windows?

(0 . 0)

                                                           /L/e/k/t/u

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

* Re: windmove and the minibuffer
  2003-05-28 22:41         ` Juanma Barranquero
@ 2003-05-28 22:55           ` Luc Teirlinck
  0 siblings, 0 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-05-28 22:55 UTC (permalink / raw)
  Cc: emacs-devel

I forgot the CC to emacs-devel in an earlier reply (Sorry.):

Juanma Barranquero wrote:

   I suppose the idea is deactivating scroll-bar, fringe, tool-bar and
   menu,
   right?

Yes, just to make sure they have nothing to do with the problem.

   > (coordinates-in-window-p '(0 . 0) (selected-window))
   >
   > should not return nil.  But it does, at least on GNU/Linux.  What
   > happens on MS Windows?

   (0 . 0)

That is clearly what it should return.  So the bug in
`coordinates-in-window-p' is operating system dependent and does not
occur under MS Windows.

Did you evaluate the window-at forms I mentioned in my earlier
message? (Because that would be interesting.)

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-05-28 19:27     ` Luc Teirlinck
  2003-05-28 20:11       ` Luc Teirlinck
@ 2003-05-28 23:05       ` Juanma Barranquero
  2003-05-28 23:25         ` Luc Teirlinck
  1 sibling, 1 reply; 28+ messages in thread
From: Juanma Barranquero @ 2003-05-28 23:05 UTC (permalink / raw)
  Cc: jmbarranquero

On Wed, 28 May 2003 14:27:35 -0500 (CDT), Luc Teirlinck <teirllm@dms.auburn.edu> wrote:

> (window-at 0 15)
> 
> Result: nil

   => #<window 3 on *scratch*>

> (window-at 1 (window-height)) 
> 
> Result: #<window 3 on *scratch*>

   => #<window 4 on  *Minibuf-0*>

> (window-at 0 (window-height))
> 
> Result: nil. 

   => #<window 4 on  *Minibuf-0*>


                                                           /L/e/k/t/u

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

* Re: windmove and the minibuffer
  2003-05-28 23:05       ` Juanma Barranquero
@ 2003-05-28 23:25         ` Luc Teirlinck
  0 siblings, 0 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-05-28 23:25 UTC (permalink / raw)
  Cc: jmbarranquero

The values returned by `window-at' under MS Windows are, in my
opinion, exactly the ones that should be returned.  So the bugs in
both `coordinates-in-window-p' and `window-at' are operating-system
specific and do not occur under MS Windows.  I do not know the
involved C code well enough to debug this myself.

In my opinion, there are no bugs in windmove.el.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-05-28 20:11       ` Luc Teirlinck
  2003-05-28 22:41         ` Juanma Barranquero
@ 2003-05-31 19:52         ` Richard Stallman
  2003-05-31 23:16           ` Luc Teirlinck
  1 sibling, 1 reply; 28+ messages in thread
From: Richard Stallman @ 2003-05-31 19:52 UTC (permalink / raw)
  Cc: jmbarranquero

    emacs-21.3.50 -q --eval "(blink-cursor-mode 0)" &
    M-x scroll-bar-mode
    M-x fringe-mode
    M-x tool-bar-mode
    M-x menu-bar-mode

    (coordinates-in-window-p '(0 . 0) (selected-window))

    should not return nil.  But it does, at least on GNU/Linux.

It returned (0 . 0) when I tried it.

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

* Re: windmove and the minibuffer
  2003-05-31 19:52         ` Richard Stallman
@ 2003-05-31 23:16           ` Luc Teirlinck
  2003-06-01  0:10             ` Robert J. Chassell
                               ` (2 more replies)
  0 siblings, 3 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-05-31 23:16 UTC (permalink / raw)
  Cc: jmbarranquero

Richard Stallman wrote:

       emacs-21.3.50 -q --eval "(blink-cursor-mode 0)" &
       M-x scroll-bar-mode
       M-x fringe-mode
       M-x tool-bar-mode
       M-x menu-bar-mode

       (coordinates-in-window-p '(0 . 0) (selected-window))

       should not return nil.  But it does, at least on GNU/Linux.

   It returned (0 . 0) when I tried it.

Still returns nil for me in freshly updated CVS Emacs. (I forgot to
mention that one has to simply do RETURN in response to the question
asked by M-x fringe-mode, but that seemed obvious.)

Did you use the Linux or GNU kernel?  (I do not know whether that
should make any difference, but we already know that the problem is
operating system specific.)

Can you reproduce Alex's original bug:

Run emacs -q
M-x windmove-default-keybindings  (After loading windmove, of course.)
C-x C-f (you should be in the minibuffer, now)
S-up (you should be in *scratch*, now)
S-down (I am still in *scratch*, even though I want to be in the
minibuffer)

Alex, what return value do you get for the above form, in the above
situation?  Also which return values do you get, in that same
situation, for:

(window-at 0 15)
(window-at 1 (window-height))
(window-at 0 (window-height))
(window-at 1 (1+ (window-height)))

It are mainly the window-at values that are relevant to Alex's
problem, but the coordinates-in-window-p problem is closely related.

I use RedHat7.2.

(emacs-version)

"GNU Emacs 21.3.50.1 (i686-pc-linux-gnu, X toolkit)\n of 2003-05-31 on
swt40.swt.com"

I used:

./configure --without-toolkit-scroll-bars

but one of the purposes of M-x scroll-bar-mode, in the above, was to
make that irrelevant.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-05-31 23:16           ` Luc Teirlinck
@ 2003-06-01  0:10             ` Robert J. Chassell
  2003-06-01  0:46               ` Luc Teirlinck
  2003-06-01  8:44             ` Alex Schroeder
  2003-06-02 11:15             ` Richard Stallman
  2 siblings, 1 reply; 28+ messages in thread
From: Robert J. Chassell @ 2003-06-01  0:10 UTC (permalink / raw)


Luc Teirlinck <teirllm@dms.auburn.edu> asked about a bug concerning
windmove and the minibuffer.

I see the bug.  I invoked Emacs like this:

  /usr/local/bin/emacs -q --no-site-file --eval '(blink-cursor-mode 0)'

Then:
          M-x scroll-bar-mode
          M-x fringe-mode
          M-x tool-bar-mode
          M-x menu-bar-mode

          (coordinates-in-window-p '(0 . 0) (selected-window))

          should not return nil.  But it does, at least on GNU/Linux.

RMS writes:

      It returned (0 . 0) when I tried it.

Luc Teirlinck <teirllm@dms.auburn.edu> writes:

   Still returns nil for me in freshly updated CVS Emacs. 

And I got nil, too, in freshly updated CVS Emacs.

Today's CVS snapshot, Sun, 2003 May 31 20:36 UTC
GNU Emacs 21.3.50.68 (i686-pc-linux-gnu, X toolkit)
with a Linux kernel
started with:

  /usr/local/bin/emacs -q --no-site-file --eval '(blink-cursor-mode 0)'


Luc Teirlinck <teirllm@dms.auburn.edu> asks:

   Can you reproduce Alex's original bug:

   Run emacs -q

(require 'windmove)

   M-x windmove-default-keybindings  (After loading windmove, of course.)
   C-x C-f (you should be in the minibuffer, now)
   S-up (you should be in *scratch*, now)
   S-down (I am still in *scratch*, even though I want to be in the
   minibuffer)

Yes, I just reproduced that exactly.

   ... which return values do you get ....

Here they are:

   (window-at 0 15)nil
   (window-at 1 (window-height))#<window 3 on *scratch*>
   (window-at 0 (window-height))nil
   (window-at 1 (1+ (window-height)))#<window 4 on  *Minibuf-1*>

   (emacs-version)"GNU Emacs 21.3.50.68 (i686-pc-linux-gnu, X toolkit)
 of 2003-05-31 on benthic.rattlesnake.com"

-- 
    Robert J. Chassell                         Rattlesnake Enterprises
    http://www.rattlesnake.com                  GnuPG Key ID: 004B4AC8
    http://www.teak.cc                             bob@rattlesnake.com

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

* Re: windmove and the minibuffer
  2003-06-01  0:10             ` Robert J. Chassell
@ 2003-06-01  0:46               ` Luc Teirlinck
  0 siblings, 0 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-06-01  0:46 UTC (permalink / raw)
  Cc: emacs-devel

Robert Chassell wrote:

   Here they are:

      (window-at 0 15)nil
      (window-at 1 (window-height))#<window 3 on *scratch*>
      (window-at 0 (window-height))nil
      (window-at 1 (1+ (window-height)))#<window 4 on  *Minibuf-1*>

Same values I got.  And I also use GNU/Linux.  I believe that these
values are wrong and explain the bug in windmove.  People using MS
Windows get the correct values (also for coordinates-in-window-p) and
do not see the bug in windmove.  The same could conceivably hold for
people using the GNU kernel.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-05-31 23:16           ` Luc Teirlinck
  2003-06-01  0:10             ` Robert J. Chassell
@ 2003-06-01  8:44             ` Alex Schroeder
  2003-06-01 12:04               ` Robert J. Chassell
                                 ` (2 more replies)
  2003-06-02 11:15             ` Richard Stallman
  2 siblings, 3 replies; 28+ messages in thread
From: Alex Schroeder @ 2003-06-01  8:44 UTC (permalink / raw)
  Cc: jmbarranquero

Luc Teirlinck <teirllm@dms.auburn.edu> writes:

>        emacs-21.3.50 -q --eval "(blink-cursor-mode 0)" &
>        M-x scroll-bar-mode
>        M-x fringe-mode
>        M-x tool-bar-mode
>        M-x menu-bar-mode
>
>        (coordinates-in-window-p '(0 . 0) (selected-window))
>
>        should not return nil.  But it does, at least on GNU/Linux.
>
> Alex, what return value do you get for the above form, in the above
> situation?

Using the above instructions, I get:

(0 . 0)

Then I do
M-x windmove-default-keybindings
C-x C-f
S-up

So currently the minibuffer is active, but I am in *scratch*.
The above sexp still returns (0 . 0).
S-down still does not go back to the minibuffer.
Hm.

> Also which return values do you get, in that same
> situation, for:
>
> (window-at 0 15)

#<window 3 on *scratch*>

> (window-at 1 (window-height))

#<window 3 on *scratch*>

> (window-at 0 (window-height))

#<window 3 on *scratch*>

> (window-at 1 (1+ (window-height)))

#<window 4 on  *Minibuf-0*>

The result are just the same when I have an active minibuffer.

> It are mainly the window-at values that are relevant to Alex's
> problem, but the coordinates-in-window-p problem is closely related.
>
> I use RedHat7.2.

I use Debian testing/unstable

(emacs-version)  

"GNU Emacs 21.3.50.5 (i686-pc-linux-gnu, X toolkit)
 of 2003-05-24 on confusibombus"

system-configuration           "i686-pc-linux-gnu"
system-configuration-options   ""


Alex.
-- 
http://www.emacswiki.org/cgi-bin/alex.pl

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

* Re: windmove and the minibuffer
  2003-06-01  8:44             ` Alex Schroeder
@ 2003-06-01 12:04               ` Robert J. Chassell
  2003-06-01 12:15                 ` David Kastrup
  2003-06-01 13:36               ` Luc Teirlinck
  2003-06-01 14:21               ` Luc Teirlinck
  2 siblings, 1 reply; 28+ messages in thread
From: Robert J. Chassell @ 2003-06-01 12:04 UTC (permalink / raw)


Some people who use GNU with a Linux kernel see the
windmove/minibuffer bug; others do not.  So kernel type on its own
cannot be the critical factor.

For example, Alex Schroeder <alex@gnu.org> gets:

(0 . 0)

with

    (emacs-version) 
    "GNU Emacs 21.3.50.5 (i686-pc-linux-gnu, X toolkit)
     of 2003-05-24 on confusibombus"

    system-configuration           "i686-pc-linux-gnu"
    system-configuration-options   ""

On the other hand, I get nil with the same emacs-version and
system-configuration, but with this     system-configuration-options

    "'--with-type1' '--prefix=/usr/local' '--with-sound=yes'"

Hope this helps!

-- 
    Robert J. Chassell                         Rattlesnake Enterprises
    http://www.rattlesnake.com                  GnuPG Key ID: 004B4AC8
    http://www.teak.cc                             bob@rattlesnake.com

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

* Re: windmove and the minibuffer
  2003-06-01 12:04               ` Robert J. Chassell
@ 2003-06-01 12:15                 ` David Kastrup
  0 siblings, 0 replies; 28+ messages in thread
From: David Kastrup @ 2003-06-01 12:15 UTC (permalink / raw)
  Cc: emacs-devel

"Robert J. Chassell" <bob@rattlesnake.com> writes:

> Some people who use GNU with a Linux kernel see the
> windmove/minibuffer bug; others do not.  So kernel type on its own
> cannot be the critical factor.
> 
> For example, Alex Schroeder <alex@gnu.org> gets:
> 
> (0 . 0)
> 
> with
> 
>     (emacs-version) 
>     "GNU Emacs 21.3.50.5 (i686-pc-linux-gnu, X toolkit)
>      of 2003-05-24 on confusibombus"
> 
>     system-configuration           "i686-pc-linux-gnu"
>     system-configuration-options   ""
> 
> On the other hand, I get nil with the same emacs-version and
> system-configuration, but with this     system-configuration-options
> 
>     "'--with-type1' '--prefix=/usr/local' '--with-sound=yes'"
> 
> Hope this helps!

My first bet would be on the window manager, with runner-up fonts or
other X resources.


-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

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

* Re: windmove and the minibuffer
  2003-06-01  8:44             ` Alex Schroeder
  2003-06-01 12:04               ` Robert J. Chassell
@ 2003-06-01 13:36               ` Luc Teirlinck
  2003-06-01 14:21               ` Luc Teirlinck
  2 siblings, 0 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-06-01 13:36 UTC (permalink / raw)
  Cc: jmbarranquero

So depending on "something" we actually can get not two, but three
different window-at behaviors.  It might be difficult to figure out
what the "something" is without studying the C code.  I know C, but,
at present, I am not really familiar at all with Emacs' C code, just
with its Elisp code.

   S-down still does not go back to the minibuffer.
   Hm.

I do understand that, given:

   > (window-at 0 (window-height))

   #<window 3 on *scratch*>

With point at the beginning of the scratch buffer, these are the
coordinates that `windmove-find-other-window' passes to window-at.
Hence, you stay in *scratch* (without error message).  On my system,
the expression returns nil, so I get an error message (and also stay
in scratch).

For Juanma the expression returns:

 #<window 4 on  *Minibuf-0*>

So he goes to the minibiuffer.

If one could fix the window-at problem, the windmove problem would
automatically disappear.  This is not a bug in windmove.el.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-06-01  8:44             ` Alex Schroeder
  2003-06-01 12:04               ` Robert J. Chassell
  2003-06-01 13:36               ` Luc Teirlinck
@ 2003-06-01 14:21               ` Luc Teirlinck
  2003-06-01 14:49                 ` Luc Teirlinck
  2003-06-01 15:46                 ` Luc Teirlinck
  2 siblings, 2 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-06-01 14:21 UTC (permalink / raw)
  Cc: jmbarranquero

In the same situation as before

(coordinates-in-window-p '( 1 . 1) (selected-window))

returns:

(0.8571428571428571 . 0.9230769230769231)

This seems strange.  What does it return for you?

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-06-01 14:21               ` Luc Teirlinck
@ 2003-06-01 14:49                 ` Luc Teirlinck
  2003-06-01 15:46                 ` Luc Teirlinck
  1 sibling, 0 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-06-01 14:49 UTC (permalink / raw)
  Cc: jmbarranquero

On my system, coordinates-in-window-p just gets the top left corner
of the frame wrong.  Everything is off by the same amount.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-06-01 14:21               ` Luc Teirlinck
  2003-06-01 14:49                 ` Luc Teirlinck
@ 2003-06-01 15:46                 ` Luc Teirlinck
  2003-06-01 16:05                   ` Luc Teirlinck
  2003-06-01 17:30                   ` Alex Schroeder
  1 sibling, 2 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-06-01 15:46 UTC (permalink / raw)
  Cc: jmbarranquero

>From my previous message:

   This seems strange.  What does it return for you?

Never mind, in the case of Alex I can pretty much guess: (1 . 1), of
course.

>From frame.h:

/* Convert pixel-value X to canonical units.  F is the frame whose
   canonical character width is to be used.  X is a C integer.  Result
   is a Lisp float if X is not a multiple of the canon width,
   otherwise it's a Lisp integer.  */

#define FRAME_CANON_X_FROM_PIXEL_X(F, X)			\
     ((X) % FRAME_COLUMN_WIDTH (F) != 0
     \
      ? make_float ((double) (X) / FRAME_COLUMN_WIDTH (F))	\
      : make_number ((X) / FRAME_COLUMN_WIDTH (F)))

/* Convert pixel-value Y to canonical units.  F is the frame whose
   canonical character height is to be used.  Y is a C integer.
   Result is a Lisp float if Y is not a multiple of the canon width,
   otherwise it's a Lisp integer.  */

#define FRAME_CANON_Y_FROM_PIXEL_Y(F, Y)			\
     ((Y) % FRAME_LINE_HEIGHT (F)
     \
      ? make_float ((double) (Y) / FRAME_LINE_HEIGHT (F))	\
      : make_number ((Y) / FRAME_LINE_HEIGHT (F)))


coordinates-in-window-p uses this.

A logical explanation for the variation in behavior for
coordinates-in-window-p might be that if we wind up working with Lisp
integers everything is OK and otherwise, we get bugs.

Since Alex sees no bug in coordinates-in-window-p, but sees one in
window-at, the two bugs are not necessarily related.  Somebody who
knows the involved C code better than I do should take a look at this.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-06-01 15:46                 ` Luc Teirlinck
@ 2003-06-01 16:05                   ` Luc Teirlinck
  2003-06-01 17:30                   ` Alex Schroeder
  1 sibling, 0 replies; 28+ messages in thread
From: Luc Teirlinck @ 2003-06-01 16:05 UTC (permalink / raw)
  Cc: jmbarranquero

>From my previous message:

   A logical explanation for the variation in behavior for
   coordinates-in-window-p might be that if we wind up working with Lisp
   integers everything is OK and otherwise, we get bugs.

This might not necessarily make sense.  I quite simply do not know the
involved C code well enough to be formulating conjectures.

Sincerely,

Luc.

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

* Re: windmove and the minibuffer
  2003-06-01 15:46                 ` Luc Teirlinck
  2003-06-01 16:05                   ` Luc Teirlinck
@ 2003-06-01 17:30                   ` Alex Schroeder
  1 sibling, 0 replies; 28+ messages in thread
From: Alex Schroeder @ 2003-06-01 17:30 UTC (permalink / raw)
  Cc: jmbarranquero

Luc Teirlinck <teirllm@dms.auburn.edu> writes:

>>From my previous message:
>
>    This seems strange.  What does it return for you?
>
> Never mind, in the case of Alex I can pretty much guess: (1 . 1), of
> course.

Indeed.  :)

Alex.
-- 
http://www.emacswiki.org/cgi-bin/alex.pl

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

* Re: windmove and the minibuffer
  2003-05-31 23:16           ` Luc Teirlinck
  2003-06-01  0:10             ` Robert J. Chassell
  2003-06-01  8:44             ` Alex Schroeder
@ 2003-06-02 11:15             ` Richard Stallman
  2 siblings, 0 replies; 28+ messages in thread
From: Richard Stallman @ 2003-06-02 11:15 UTC (permalink / raw)
  Cc: jmbarranquero

    Did you use the Linux or GNU kernel?

I'm using a GNU/Linux system.  Anyway, the original bug happens for
me when using X, so I will try to debug it.

[Later] I debugged it and fixed it.  The problem was because
window-edges gives edges that include columns in the scroll bar,
fringes, etc., but window-at does not accept such positions.  I added
a new function window-inside-edges and made windmove use that to
produce its reference positions.

However, I am thinking that window-at ought to recognize positions
in the scroll bar, margins, etc. of a window.

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

end of thread, other threads:[~2003-06-02 11:15 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <E19KknO-0004NB-Qx@monty-python.gnu.org>
2003-05-28  6:11 ` windmove and the minibuffer Lars Hansen
2003-05-26 17:52 Alex Schroeder
2003-05-27  8:03 ` Juanma Barranquero
2003-05-27 17:25   ` Alex Schroeder
2003-05-27 21:59     ` Juanma Barranquero
2003-05-27 23:04       ` Luc Teirlinck
2003-05-28  2:16 ` Luc Teirlinck
2003-05-28  7:00   ` Juanma Barranquero
2003-05-28 19:27     ` Luc Teirlinck
2003-05-28 20:11       ` Luc Teirlinck
2003-05-28 22:41         ` Juanma Barranquero
2003-05-28 22:55           ` Luc Teirlinck
2003-05-31 19:52         ` Richard Stallman
2003-05-31 23:16           ` Luc Teirlinck
2003-06-01  0:10             ` Robert J. Chassell
2003-06-01  0:46               ` Luc Teirlinck
2003-06-01  8:44             ` Alex Schroeder
2003-06-01 12:04               ` Robert J. Chassell
2003-06-01 12:15                 ` David Kastrup
2003-06-01 13:36               ` Luc Teirlinck
2003-06-01 14:21               ` Luc Teirlinck
2003-06-01 14:49                 ` Luc Teirlinck
2003-06-01 15:46                 ` Luc Teirlinck
2003-06-01 16:05                   ` Luc Teirlinck
2003-06-01 17:30                   ` Alex Schroeder
2003-06-02 11:15             ` Richard Stallman
2003-05-28 23:05       ` Juanma Barranquero
2003-05-28 23:25         ` Luc Teirlinck

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