GNU bug report logs - #1372
posn-at-x-y reports wrong window

Previous Next

Package: emacs;

Reported by: David Reitter <david.reitter <at> gmail.com>

Date: Wed, 19 Nov 2008 00:55:04 UTC

Severity: normal

Done: martin rudalics <rudalics <at> gmx.at>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 1372 in the body.
You can then email your comments to 1372 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1372; Package emacs. Full text and rfc822 format available.

Acknowledgement sent to David Reitter <david.reitter <at> gmail.com>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: David Reitter <david.reitter <at> gmail.com>
To: emacs-pretest-bug <at> gnu.org
Cc: Jin Choi <jsc <at> alum.mit.edu>
Subject: posn-at-x-y reports wrong window
Date: Tue, 18 Nov 2008 19:45:47 -0500
[Message part 1 (text/plain, inline)]
I received the bug report below for our visual-line-mode in Aquamacs  
Emacs, but I managed to reproduce the core issue on Emacs 23 (Nextstep  
port) as follows:

(fringe-mode 0)
C-x 3 C-x 2 C-x o C-x o
(we're now in the large window on the right, with two small windows in  
the left half of the frame).

Insert enough newlines to be vertically just above the horizontal  
divider on the left.

M-: (posn-at-x-y 0 (cdr (posn-x-y (posn-at-point)))) RET

Insert newline, now we're next to the divider line.

M-: (posn-at-x-y 0 (cdr (posn-x-y (posn-at-point)))) RET

--> wrong window (the window in the upper left) is given in the  
structure.
Instead of 0, the x value can be up to 6 ((frame-char-width) reports 7).




Begin forwarded message:

> From: Jin Choi <jsc <at> alum.mit.edu>
> Date: 18 November 2008 14:35:17 EST
> To: aquamacs-bugs <at> aquamacs.org
> Subject: [Aquamacs-bugs] visual-line-mode error with vertically  
> split windows
>
> Please describe exactly what actions triggered the bug
> and the precise symptoms of the bug:
>
> THE SETUP: vertically split window with the left half split
> horizontally. This is commonly used in, say, ECB, perhaps other modes:
> ---------
> | 1 | 3 |
> |   |   |
> ----|   |
> | 2 |   |
> |   |   |
> ---------
>
>
> THE BUG: in the right hand window, attempting to move the cursor (in
> column 1) through the row adjacent to the mode line of the upper left
> hand window moves the cursor to the upper left window. Also, placing
> the cursor in column 0 of that row then typing C-n or C-p gives the
> error "Position not in text area of window."
>
>
>
> TO REPLICATE:
> C-x 3 C-x 2
>
> Hit return in the right side window (3) enough to get you past the
> divider
> on the left.
>
> Then C-p back past the divider. Cursor jumps to upper left window (1).
>
> Now click on the row in window 3 adjacent to the divider. Type C-n or
> C-p. Gives above error.
>
>
> WORKAROUND:
> (global-visual-line-mode 0)
>
>
>
> In GNU Emacs 22.3.2 (i386-apple-darwin9.5.0, Carbon Version 1.6.0)
>  of 2008-09-21 on plume.sr.unh.edu - Aquamacs Distribution 1.5
> Windowing system distributor `Apple Inc.', version 10.5.5
> configured using `configure  '--without-x' '--prefix=/usr/local''
>
> Important settings:
>   value of $LC_ALL: nil
>   value of $LC_COLLATE: nil
>   value of $LC_CTYPE: nil
>   value of $LC_MESSAGES: nil
>   value of $LC_MONETARY: nil
>   value of $LC_NUMERIC: nil
>   value of $LC_TIME: nil
>   value of $LANG: nil
>   locale-coding-system: iso-8859-1
>   default-enable-multibyte-characters: t
>
> Major mode: Text
>
> Minor modes in effect:
>   shell-dirtrack-mode: t
>   savehist-mode: t
>   aquamacs-styles-mode: t
>   smart-frame-positioning-mode: t
>   global-visual-line-mode: t
>   visual-line-mode: t
>   recentf-mode: t
>   encoded-kbd-mode: t
>   osx-key-mode: t
>   show-paren-mode: t
>   delete-selection-mode: t
>   pc-selection-mode: t
>   cua-mode: t
>   tooltip-mode: t
>   mouse-wheel-mode: t
>   menu-bar-mode: t
>   file-name-shadow-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   blink-cursor-mode: t
>   unify-8859-on-encoding-mode: t
>   utf-translate-cjk-mode: t
>   auto-compression-mode: t
>   column-number-mode: t
>   transient-mark-mode: t
>
> Recent input:
> <menu-bar> <help-menu> <bug-diagnosis> <start-vanilla-aquamacs>
> <menu-bar> <help-menu> <bug-diagnosis> <send-emacs
> -bug-report>
>
> Recent messages:
> on One-Buffer-One-Frame-Mode (Display Buffers in Separate Frames)!
> Loading /Users/jsc/Library/Preferences/Aquamacs Emacs/
> customizations.el (source)...done
> Loading /Users/jsc/Library/Preferences/Aquamacs Emacs/Preferences.el
> (source)...done
> One-Buffer-One-Frame-Mode disabled.
> For best results, turn off Frame Appearance Styles now.
> Loading /Users/jsc/Library/Preferences/Aquamacs Emacs/frame-
> positions.el (source)...done
> Truncate long lines disabled
> Mark set
> Aquamacs is based on GNU Emacs 22, a part of the GNU/Linux system. It
> is Free Software: you can improve and redistribute it under the GNU
> General Public License, version 3 or later. Copyright (C) 2008 Free
> Software Foundation, Inc. (C) 2008 D. Reitter. No Warranty.
> Loading emacsbug...done
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's  
> challenge
> Build the coolest Linux based applications with Moblin SDK & win  
> great prizes
> Grand prize is a trip for two to an Open Source event anywhere in  
> the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> __
> https://lists.sourceforge.net/lists/listinfo/aquamacs-bugs

[smime.p7s (application/pkcs7-signature, attachment)]

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1372; Package emacs. Full text and rfc822 format available.

Acknowledgement sent to martin rudalics <rudalics <at> gmx.at>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. Full text and rfc822 format available.

Message #10 received at 1372 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: David Reitter <david.reitter <at> gmail.com>, 1372 <at> debbugs.gnu.org
Cc: Jin Choi <jsc <at> alum.mit.edu>
Subject: Re: bug#1372: posn-at-x-y reports wrong window
Date: Wed, 19 Nov 2008 16:09:39 +0100
[Message part 1 (text/plain, inline)]
> (fringe-mode 0)
> C-x 3 C-x 2 C-x o C-x o
> (we're now in the large window on the right, with two small windows in
> the left half of the frame).
>
> Insert enough newlines to be vertically just above the horizontal
> divider on the left.
>
> M-: (posn-at-x-y 0 (cdr (posn-x-y (posn-at-point)))) RET
>
> Insert newline, now we're next to the divider line.
>
> M-: (posn-at-x-y 0 (cdr (posn-x-y (posn-at-point)))) RET
>
> --> wrong window (the window in the upper left) is given in the structure.
> Instead of 0, the x value can be up to 6 ((frame-char-width) reports 7).

Can you try the attached patch?

martin
[1372.diff (text/plain, inline)]
*** window.c.~1.634.~	2008-11-18 18:56:23.703125000 +0100
--- window.c	2008-11-19 16:04:02.078125000 +0100
***************
*** 774,780 ****
  	}
        else
  	{
! 	  if (eabs (*x - x1) < grabbable_width)
  	    {
  	      /* Convert X and Y to window relative coordinates.
  		 Vertical border is at the right edge of window.  */
--- 774,781 ----
  	}
        else
  	{
! 	  if ((WINDOW_RIGHTMOST_P (w) || *x < x1)
! 	      && eabs (*x - x1) < grabbable_width)
  	    {
  	      /* Convert X and Y to window relative coordinates.
  		 Vertical border is at the right edge of window.  */

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1372; Package emacs. Full text and rfc822 format available.

Acknowledgement sent to David Reitter <david.reitter <at> gmail.com>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. Full text and rfc822 format available.

Message #15 received at 1372 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: David Reitter <david.reitter <at> gmail.com>
To: martin rudalics <rudalics <at> gmx.at>
Cc: 1372 <at> debbugs.gnu.org, Jin Choi <jsc <at> alum.mit.edu>
Subject: Re: bug#1372: posn-at-x-y reports wrong window
Date: Wed, 19 Nov 2008 10:27:15 -0500
[Message part 1 (text/plain, inline)]
Thanks, this patch fixes the problem.

- David

On 19 Nov 2008, at 10:09, martin rudalics wrote:

> > (fringe-mode 0)
> > C-x 3 C-x 2 C-x o C-x o
> > (we're now in the large window on the right, with two small  
> windows in
> > the left half of the frame).
> >
> > Insert enough newlines to be vertically just above the horizontal
> > divider on the left.
> >
> > M-: (posn-at-x-y 0 (cdr (posn-x-y (posn-at-point)))) RET
> >
> > Insert newline, now we're next to the divider line.
> >
> > M-: (posn-at-x-y 0 (cdr (posn-x-y (posn-at-point)))) RET
> >
> > --> wrong window (the window in the upper left) is given in the  
> structure.
> > Instead of 0, the x value can be up to 6 ((frame-char-width)  
> reports 7).
>
> Can you try the attached patch?
>
> martin
> *** window.c.~1.634.~	2008-11-18 18:56:23.703125000 +0100
> --- window.c	2008-11-19 16:04:02.078125000 +0100
> ***************
> *** 774,780 ****
>  	}
>        else
>  	{
> ! 	  if (eabs (*x - x1) < grabbable_width)
>  	    {
>  	      /* Convert X and Y to window relative coordinates.
>  		 Vertical border is at the right edge of window.  */
> --- 774,781 ----
>  	}
>        else
>  	{
> ! 	  if ((WINDOW_RIGHTMOST_P (w) || *x < x1)
> ! 	      && eabs (*x - x1) < grabbable_width)
>  	    {
>  	      /* Convert X and Y to window relative coordinates.
>  		 Vertical border is at the right edge of window.  */

[smime.p7s (application/pkcs7-signature, attachment)]

Reply sent to martin rudalics <rudalics <at> gmx.at>:
You have taken responsibility. Full text and rfc822 format available.

Notification sent to David Reitter <david.reitter <at> gmail.com>:
bug acknowledged by developer. Full text and rfc822 format available.

Message #20 received at 1372-done <at> emacsbugs.donarmstrong.com (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: 1372-done <at> debbugs.gnu.org
Cc: David Reitter <david.reitter <at> gmail.com>, Jin Choi <jsc <at> alum.mit.edu>
Subject: Re: bug#1372: posn-at-x-y reports wrong window
Date: Thu, 20 Nov 2008 11:21:04 +0100
Fixed as

2008-11-20  Martin Rudalics  <rudalics <at> gmx.at>

	* window.c (coordinates_in_window): Don't return
	ON_VERTICAL_BORDER for the rightmost position of a mode/header
	line when the window is not the rightmost one.  (Bug#1372)

Thanks for the report, martin




bug archived. Request was from Debbugs Internal Request <don <at> donarmstrong.com> to internal_control <at> emacsbugs.donarmstrong.com. (Thu, 18 Dec 2008 15:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 16 years and 244 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.