GNU bug report logs -
#3792
23.1.50; other-window misbehaving with C-tab keybinding
Previous Next
Reported by: Ivan Andrus <IAndrus <at> omniture.com>
Date: Wed, 8 Jul 2009 19:55:05 UTC
Severity: normal
Done: Adrian Robert <adrian.b.robert <at> gmail.com>
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 3792 in the body.
You can then email your comments to 3792 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#3792
; Package
emacs
.
(Wed, 08 Jul 2009 19:55:05 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Ivan Andrus <IAndrus <at> omniture.com>
:
New bug report received and forwarded. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Wed, 08 Jul 2009 19:55:05 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
I only see this problem in the NextStep (Cocoa actually) version (i.e. not
X-windows) that I build from CVS.
I did the following:
nextstep/Emacs.app/Contents/MacOS/Emacs -q
(global-set-key [(control tab)] 'other-window)
C-x 2 ; to create a new window
C-tab ; switches to the other window, then back when I release tab. If I
release control first then it does not change back to the other window. It
should not switch back to the other window.
In GNU Emacs 23.1.50.2 (i386-apple-darwin9.7.0, NS apple-appkit-949.46)
of 2009-07-06 on ivan-andruss-macbook-pro.local
Windowing system distributor `Apple', version 10.3.949
configured using `configure '--with-ns''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: en_US.UTF-8
value of $LC_CTYPE: en_US.UTF-8
value of $LC_MESSAGES: en_US.UTF-8
value of $LC_MONETARY: en_US.UTF-8
value of $LC_NUMERIC: en_US.UTF-8
value of $LC_TIME: en_US.UTF-8
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
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:
<down-mouse-1> <mouse-1> <help-echo> <down-mouse-1>
<mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1>
s-w <down-mouse-1> <mouse-1> s-x C-g C-x b <return>
<down-mouse-1> <mouse-1> d <backspace> s-( s-( ( c
l <backspace> <backspace> g l o b a l - s e t - k e
y SPC " C - T a b " SPC ' o t h e r - w i n d o w )
C-j q <up> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> C-y C-d C-d C-d C-d
C-d C-d C-d C-e C-x C-e C-x 2 <C-tab> <C-tab> <C-tab>
<C-tab> <C-tab> <C-tab> <C-tab> <C-tab> <C-tab> <C-tab>
<C-tab> <C-tab> <C-tab> <C-tab> <down-mouse-1> <mouse-1>
<help-echo> <down-mouse-1> <mouse-1> s-x r e l <backspace>
<backspace> C-/ C-/ C-/ C-/ C-/ SPC C-/ C-/ <down>
<down> <return> <return> <return> <return> <escape>
x r e p o <tab> r <tab> <return>
Recent messages:
call-interactively: Attempt to delete the sole visible or iconified frame
kill-region: The mark is not set now, so there is no region
Quit
Entering debugger...
Back to top level.
Mark set
other-window
Undo! [6 times]
Redo!
Making completion list...
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#3792
; Package
emacs
.
(Fri, 10 Jul 2009 15:20:05 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Ivan Andrus <IAndrus <at> omniture.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Fri, 10 Jul 2009 15:20:05 GMT)
Full text and
rfc822 format available.
Message #10 received at 3792 <at> emacsbugs.donarmstrong.com (full text, mbox):
[Message part 1 (text/plain, inline)]
I noticed that view-lossage shows two <C-tab> for every time I press it. In nsterm.m it specifically checks for control-tab and references
http://osdir.com/ml/editors.vim.mac/2007-10/msg00141.html
Which in turn references
https://bugzilla.mozilla.org/show_bug.cgi?id=374076#c12
Which makes me think that in Mac OS 10.4 the control-tab keyDown event isn't sent, but in 10.5 it is. Or at the very least in the latest version of 10.5 (I'm running 10.5.7) it sends a keyDown event.
I have implemented what I think is a very simple fix (though it is probably not ideal). It sets a flag if it recieves a C-tag keyDown, and if so does not send the corresponging keyUp. I like this because then it works on keyDown like everything else if possible, but if not it should work on keyUp. I don't have the facilities to test the latter assumption.
Also the patch almost certainly is less efficient than it could be. For example it sets flags and code twice (I believe) to the same thing, but I'm not really familiar enough with the code to want to risk changing that (and it's only for the Cocoa port as well). I believe it should be correct at least.
-Ivan Andrus
[Message part 2 (text/html, inline)]
[emacs.patch (application/octet-stream, attachment)]
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#3792
; Package
emacs
.
(Sat, 11 Jul 2009 07:50:04 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sat, 11 Jul 2009 07:50:04 GMT)
Full text and
rfc822 format available.
Message #15 received at 3792 <at> emacsbugs.donarmstrong.com (full text, mbox):
>>>>> On Fri, 10 Jul 2009 09:13:55 -0600, Ivan Andrus <IAndrus <at> omniture.com> said:
> I noticed that view-lossage shows two <C-tab> for every time I press
> it. In nsterm.m it specifically checks for control-tab and
> references
> http://osdir.com/ml/editors.vim.mac/2007-10/msg00141.html
> Which in turn references
> https://bugzilla.mozilla.org/show_bug.cgi?id=374076#c12
> Which makes me think that in Mac OS 10.4 the control-tab keyDown
> event isn't sent, but in 10.5 it is. Or at the very least in the
> latest version of 10.5 (I'm running 10.5.7) it sends a keyDown
> event.
FWIW, the latest release of my Carbon+AppKit port (*), which also uses
Cocoa for GUI stuff, has the problem that it doesn't recognize
Control-Tab on Mac OS X 10.4 and earlier. And I'm planning to add the
following change to the next release:
*: http://lists.gnu.org/archive/html/emacs-devel/2009-06/msg00532.html
*** ../../emacs-22.3-appkit-1.4/src/macappkit.m 2009-06-27 13:49:25.000000000 +0900
--- macappkit.m 2009-07-10 10:54:02.000000000 +0900
*************** static EventRef peek_if_next_event_activ
*** 747,753 ****
if (!(mac_mapped_modifiers (modifiers, [event keyCode])
& ~(mac_pass_command_to_system ? cmdKey : 0)
& ~(mac_pass_control_to_system ? controlKey : 0))
! && ([NSApp keyWindow] || (flags & NSCommandKeyMask)))
goto OTHER;
characters = [event characters];
--- 747,764 ----
if (!(mac_mapped_modifiers (modifiers, [event keyCode])
& ~(mac_pass_command_to_system ? cmdKey : 0)
& ~(mac_pass_control_to_system ? controlKey : 0))
! && ([NSApp keyWindow] || (flags & NSCommandKeyMask))
! #if MAC_OS_X_VERSION_MIN_REQUIRED < 1050
! /* This is a workaround for the problem that Control-Tab
! is not recognized on Mac OS X 10.4 and earlier. */
! && !(floor (NSAppKitVersionNumber) <= NSAppKitVersionNumber10_4
! && [[[NSApp keyWindow] firstResponder]
! isMemberOfClass:[EmacsView class]]
! && [event keyCode] == 0x30 /* kVK_Tab */
! && ((flags & (NSControlKeyMask | NSCommandKeyMask))
! == NSControlKeyMask))
! #endif
! )
goto OTHER;
characters = [event characters];
On Mac OS X 10.4 and earlier, the first responder object doesn't
receive the keyDown: message for Control-Tab. But still NSApplication
and NSWindow objects can detect such NSKeyDown events via sendEvent:.
Processing key events at the timing of keyUp: gives a strange feeling
to the user because the command bound to the key is executed much
later than expected and auto-repeat does not work.
YAMAMOTO Mitsuharu
mituharu <at> math.s.chiba-u.ac.jp
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#3792
; Package
emacs
.
(Sat, 11 Jul 2009 18:00:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Harald Maier <harald <at> maierh.de>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sat, 11 Jul 2009 18:00:04 GMT)
Full text and
rfc822 format available.
Message #20 received at 3792 <at> emacsbugs.donarmstrong.com (full text, mbox):
Ivan Andrus <IAndrus <at> omniture.com> writes:
> I noticed that view-lossage shows two <C-tab> for every time I press
> it. In nsterm.m it specifically checks for control-tab and references
> http://osdir.com/ml/editors.vim.mac/2007-10/msg00141.html Which in
> turn references
> https://bugzilla.mozilla.org/show_bug.cgi?id=374076#c12
>
> Which makes me think that in Mac OS 10.4 the control-tab keyDown event
> isn't sent, but in 10.5 it is. Or at the very least in the latest
> version of 10.5 (I'm running 10.5.7) it sends a keyDown event.
>
> I have implemented what I think is a very simple fix (though it is
> probably not ideal). It sets a flag if it recieves a C-tag keyDown,
> and if so does not send the corresponging keyUp. I like this because
> then it works on keyDown like everything else if possible, but if not
> it should work on keyUp. I don't have the facilities to test the
> latter assumption.
>
> Also the patch almost certainly is less efficient than it could be.
> For example it sets flags and code twice (I believe) to the same
> thing, but I'm not really familiar enough with the code to want to
> risk changing that (and it's only for the Cocoa port as well). I
> believe it should be correct at least.
>
> -Ivan Andrus
Works fine for me. Thanks!
Maybe you should resend the Patch. In line 3 at the end the two final
'@@' characters are missing.
IMHO, that workaround should be added to 23.1. In 2009-02-20 I too
reported the bug as #2402.
Harald
bug reassigned from package `emacs' to `emacs,ns'.
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> emacsbugs.donarmstrong.com
.
(Sat, 11 Jul 2009 19:50:04 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>, owner <at> emacsbugs.donarmstrong.com
:
bug#3792
; Package
emacs,ns
.
(Mon, 13 Jul 2009 17:25:10 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Ivan Andrus <IAndrus <at> omniture.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>, owner <at> emacsbugs.donarmstrong.com
.
(Mon, 13 Jul 2009 17:25:10 GMT)
Full text and
rfc822 format available.
Message #27 received at 3792 <at> emacsbugs.donarmstrong.com (full text, mbox):
[Message part 1 (text/plain, inline)]
Resending patch (properly formatted this time I hope).
[Message part 2 (text/html, inline)]
[emacs.patch (application/octet-stream, attachment)]
Reply sent
to
Adrian Robert <adrian.b.robert <at> gmail.com>
:
You have taken responsibility.
(Thu, 23 Jul 2009 12:00:04 GMT)
Full text and
rfc822 format available.
Notification sent
to
Ivan Andrus <IAndrus <at> omniture.com>
:
bug acknowledged by developer.
(Thu, 23 Jul 2009 12:00:04 GMT)
Full text and
rfc822 format available.
Message #32 received at 3792-done <at> emacsbugs.donarmstrong.com (full text, mbox):
I checked in a fix to trunk and branch to simply not do the keyUp-
detection on Leopard and above. Tested on Tiger and Leopard.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> emacsbugs.donarmstrong.com
.
(Thu, 20 Aug 2009 14:24:12 GMT)
Full text and
rfc822 format available.
This bug report was last modified 15 years and 309 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.