Mercurial > emacs
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; }