[USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert

dead key repeat and up events.
This commit is contained in:
YAMAMOTO Mitsuharu 2007-05-16 08:15:44 +00:00
parent 5a83f85cd7
commit e4f5123fce
2 changed files with 18 additions and 4 deletions

View 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.

View 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;
}