]> code.delx.au - gnu-emacs/commitdiff
[USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Wed, 16 May 2007 08:15:44 +0000 (08:15 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Wed, 16 May 2007 08:15:44 +0000 (08:15 +0000)
dead key repeat and up events.

src/ChangeLog
src/macterm.c

index 503b82881dd5e9df15872c810f58ec4a4f75c487..9bf43195c1dc98fba01e56ba39047e2c434dcdd6 100644 (file)
@@ -1,3 +1,8 @@
+2007-05-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
+       dead key repeat and up events.
+
 2007-05-13  Chong Yidong  <cyd@stupidchicken.com>
 
        * xterm.c (XTread_socket): Revert last change.
index bee1af5ab715be8c4517fb10933b7b021e304b3d..1acb521f47be75f8c69f589b63b95f97d51669bf 100644 (file)
@@ -9164,15 +9164,16 @@ mac_get_mouse_btn (EventRef ref)
 
 /* Normally, ConvertEventRefToEventRecord will correctly handle all
    events.  However the click of the mouse wheel is not converted to a
-   mouseDown or mouseUp event.  Likewise for dead key down events.
-   This calls ConvertEventRef, but then checks to see if it is a mouse
-   up/down, or a dead key down carbon event that has not been
+   mouseDown or mouseUp event.  Likewise for dead key events.  This
+   calls ConvertEventRefToEventRecord, but then checks to see if it is
+   a mouse up/down, or a dead key Carbon event that has not been
    converted, and if so, converts it by hand (to be picked up in the
    XTread_socket loop).  */
 static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
 {
   OSStatus err;
   Boolean result = ConvertEventRefToEventRecord (eventRef, eventRec);
+  EventKind action;
 
   if (result)
     return result;
@@ -9201,6 +9202,14 @@ static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
       switch (GetEventKind (eventRef))
        {
        case kEventRawKeyDown:
+         action = keyDown;
+         goto keystroke_common;
+       case kEventRawKeyRepeat:
+         action = autoKey;
+         goto keystroke_common;
+       case kEventRawKeyUp:
+         action = keyUp;
+       keystroke_common:
          {
            unsigned char char_codes;
            UInt32 key_code;
@@ -9214,7 +9223,7 @@ static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
                                       NULL, &key_code);
            if (err == noErr)
              {
-               eventRec->what = keyDown;
+               eventRec->what = action;
                eventRec->message = char_codes | ((key_code & 0xff) << 8);
                result = 1;
              }