Subject: compute_motion, mouse_position

From: David Reitter <[email-masked]>
Date: Mon, 9 Nov 2009 12:10:17 -0500

I've run into problems with mouse-position and compute-motion while  
debugging the broken drag&drop mechanism for faces in the NS port.
These problems are probably not specific to NS.

1. (mouse-position) does not return the selected frame when several  
frames overlap (partially).  To reproduce, I arrange the frames on the  
screen, then select the lower one by clicking with the mouse, then the  
one that's supposed to go on top.  With the mouse cursor still over  
the intersecting section (on top of the upper frame), I do M-: (mouse- 
position).  This will then return the wrong frame.  Reproducible with  
Emacs -Q (NS port with NS frames)

2. (compute-motion) does not correspond to what's shown on the screen  
when word-wrap is turned on.

3. (mouse-position) is incorrect when face-remapping-alist is used,  
enlarging the default face, for example.

I hope these are sufficiently specific to understand and identify the  
code, if not reproduce.  Let me know if not, and I can elaborate.

In GNU Emacs 23.1.50.1 (i386-apple-darwin10.0.0, NS apple- 
appkit-1038.11)
  of 2009-10-08 on scarlett.local
Windowing system distributor `Apple', version 10.3.1038
configured using `configure  '--with-ns' '--without-x' 'CC=gcc -arch  
i386''

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
   value of $XMODIFIERS: nil
   locale-coding-system: nil
   default enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
   which-function-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
   global-auto-composition-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t

Recent input:
<help-echo> C-x 5 2 <help-echo> <switch-frame> <help-echo>
<help-echo> <escape> : ( m o u s e - p o s i t i o
n ) <return> <help-echo> <down-mouse-1> <help-echo>
<mouse-1> <help-echo> <down-mouse-1> <mouse-1> <help-echo>
<down-mouse-1> <mouse-1> <help-echo> <escape> : <up>
<return> <help-echo> <help-echo> <switch-frame> <help-echo>
<help-echo> <help-echo> <escape> : <up> <return> <help-echo>
<down-mouse-1> <help-echo> <mouse-1> <help-echo> <down-mouse-1>
<mouse-1> <help-echo> <down-mouse-1> <mouse-1> <escape>
: <up> <return> <help-echo> <down-mouse-1> <mouse-1>
s-n C-x k <return> s-v C-x C-e <switch-frame> C-x C-f
<backspace> <backspace> t e s t <return> <help-echo>
C-y <down-mouse-1> <mouse-1> <escape> x n s - s h o
w - c o l o <tab> <return> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> c o l o <tab> <return> <ns-drag-color>
<ns-drag-color> <down-mouse-1> <mouse-1> <down-mouse-1>
<mouse-1> <down-mouse-1> <mouse-1> <escape> x e n l
a r <tab> <tab> C-g <escape> x z o o m <tab> <tab>
C-g <escape> x g r o w <tab> <tab> C-g <menu-bar> <help-menu>
<send-emacs-bug-report>

Recent messages:
Mark set

#<frame /Users/dr/test 0x7d5900>

Auto-saving...

#<frame /Users/dr/test 0x7d5900>

Making completion list...
Quit [2 times]
Quit

Load-path shadows:
None found.