GNU bug report logs - #21330
[PATCH] Fix handling Command-Control-<letter> combination under OS X

Previous Next

Package: emacs;

Reported by: Mikhail Gusarov <dottedmag <at> dottedmag.net>

Date: Sun, 23 Aug 2015 16:50:02 UTC

Severity: normal

Tags: patch

Merged with 19977, 21551

Found in version 24.4

Done: Philipp Stephani <p.stephani2 <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 21330 in the body.
You can then email your comments to 21330 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-gnu-emacs <at> gnu.org:
bug#21330; Package emacs. (Sun, 23 Aug 2015 16:50:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mikhail Gusarov <dottedmag <at> dottedmag.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 23 Aug 2015 16:50:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mikhail Gusarov <dottedmag <at> dottedmag.net>
To: bug-gnu-emacs <at> gnu.org
Subject: [PATCH] Fix handling Command-Control-<letter> combination under OS X
Date: Sun, 23 Aug 2015 18:49:47 +0200
[Message part 1 (text/plain, inline)]
Please find the patch attached.
[0001-Fix-handling-Command-Control-letter-combination-unde.patch (application/octet-stream, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#21330; Package emacs. (Sun, 23 Aug 2015 16:52:01 GMT) Full text and rfc822 format available.

Message #8 received at 21330 <at> debbugs.gnu.org (full text, mbox):

From: Mikhail Gusarov <dottedmag <at> dottedmag.net>
To: 21330 <at> debbugs.gnu.org
Subject: Re: bug#21330: Acknowledgement ([PATCH] Fix handling
 Command-Control-<letter> combination under OS X)
Date: Sun, 23 Aug 2015 18:51:35 +0200
A copy of commit message for easier handling:

Do not use [theEvent characters] for getting key if Command is supplied,
this causes Command-Control-A and similar key combinations to be
interpreted as control characters (^A), which breaks key processing
later on. The code which produces wrong keycode claims to handle Dvorak,
but Dvorak keyboard is handled fine without it.
* src/nsterm.m (keyDown): Disable code consulting input manager, not
needed.

On Sun, 23 Aug 2015, at 18:50, GNU bug Tracking System wrote:
> Thank you for filing a new bug report with debbugs.gnu.org.
> 
> This is an automatically generated reply to let you know your message
> has been received.
> 
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
> 
> Your message has been sent to the package maintainer(s):
>  bug-gnu-emacs <at> gnu.org
> 
> If you wish to submit further information on this problem, please
> send it to 21330 <at> debbugs.gnu.org.
> 
> Please do not send mail to help-debbugs <at> gnu.org unless you wish
> to report a problem with the Bug-tracking system.
> 
> -- 
> 21330: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21330
> GNU Bug Tracking System
> Contact help-debbugs <at> gnu.org with problems




Merged 19977 21330 21551. Request was from Anders Lindgren <andlind <at> gmail.com> to control <at> debbugs.gnu.org. (Tue, 05 Jan 2016 06:34:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#21330; Package emacs. (Mon, 26 Dec 2016 20:14:02 GMT) Full text and rfc822 format available.

Message #13 received at 21330 <at> debbugs.gnu.org (full text, mbox):

From: "Mikhail Gusarov" <dottedmag <at> dottedmag.net>
To: "Anders Lindgren" <andlind <at> gmail.com>,
 "Kai Yu Zhang" <yeannylam <at> gmail.com>, 21551 <at> debbugs.gnu.org,
 "Philipp Stephani" <p.stephani2 <at> gmail.com>, 21330 <at> debbugs.gnu.org,
 19977 <at> debbugs.gnu.org
Subject: Re: Fix Mac OS X key bindings bug
Date: Mon, 26 Dec 2016 21:12:46 +0100
[Message part 1 (text/plain, inline)]
Hi Anders,

I have tried reproducing this discrepancy using my patch from #21330
on top of branch emacs-25.

Swedish layout, ns-alternate-modifier set to nil, LCmd-LAlt-9 replies
"s-]".

Maybe you could check again as well?

Best regards,
Mikhail.

On 2 Jan 2016, at 9:08, Anders Lindgren wrote:

> I found a case where the code in question is needed, which none of the
> suggested patches handle correctly.
>
> Steps to repeat:
>
>     (setq ns-alternate-modifier nil)
>
>     Press left CMD-ALT-9
>
>     An unmodified Emacs replies "s-]" is not bound. (This assumes a Swedish
> keyboard layout, other layouts would yield a different character, but the
> principle is the same).
>
>     With either of the two patches, Emacs respond with "s-9" is not bound,
> which isn't correct.
>
> Unfortunately, I don't know how to distinguish between the cases where we
> need to strip away modifiers (C-s-a) and when we shouldn't, so I'm leaving
> this open for now.
>
>     -- Anders Lindgren
>
>
> On Wed, Dec 30, 2015 at 9:50 AM, Anders Lindgren <andlind <at> gmail.com> wrote:
>
>> Hi,
>>
>> I'm looking into a key binding bug on OS X reported multiple times (19977,
>> 21330, 21551). Two different patches have been submitted.
>>
>> The original code looks like:
>>
>>       if (is_left_key)
>>         {
>>           emacs_event->modifiers |= parse_solitary_modifier
>>             (ns_command_modifier);
>>
>>           /* if super (default), take input manager's word so things like
>>              dvorak / qwerty layout work */
>>           if (EQ (ns_command_modifier, Qsuper)
>>               && !fnKeysym
>>               && [[theEvent characters] length] != 0)
>>             {
>>               /* XXX: the code we get will be unshifted, so if we have
>>                  a shift modifier, must convert ourselves */
>>               if (!(flags & NSShiftKeyMask))
>>                 code = [[theEvent characters] characterAtIndex: 0];
>>
>> One of the patches simply removes the `if (EQ(...))' statement. The other
>> modifies the code to strip away modifiers.
>>
>> First question: What is the code in the `if (EQ(...))' supposed to do? In
>> other words, what will stop working if it is removed?
>>
>> Second question: if it is needed for the LEFT command key, should the
>> corresponding code be added for the RIGHT?
>>
>> I've tested removing the `if' and Emacs still seems to be working as
>> intended, both with a normal key layout and when Dvorak is used. If no one
>> comes up with a reason to keep the code, I will remove it.
>>
>> Third question: Does anybody know of a good way to automatically test
>> things like this? What I'm looking for is a way to send keystrokes like
>> Cmd-Alt-a to Emacs, that way it could be possible to write tests ensuring
>> that things like this don't break in the future.
>>
>>     -- Anders Lindgren
>>
>>


[Message part 2 (text/html, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 20 Mar 2018 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 255 days ago.

Previous Next


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