changeset 77705:7bb1d577f961

[USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert dead key repeat and up events.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Wed, 16 May 2007 08:15:32 +0000
parents 94a2080b22da
children 0a9df36b4e9f
files src/macterm.c
diffstat 1 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/macterm.c	Wed May 16 01:51:11 2007 +0000
+++ b/src/macterm.c	Wed May 16 08:15:32 2007 +0000
@@ -9164,15 +9164,16 @@
 
 /* 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 @@
       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 @@
 				       NULL, &key_code);
 	    if (err == noErr)
 	      {
-		eventRec->what = keyDown;
+		eventRec->what = action;
 		eventRec->message = char_codes | ((key_code & 0xff) << 8);
 		result = 1;
 	      }