+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.
/* 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;
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;
NULL, &key_code);
if (err == noErr)
{
- eventRec->what = keyDown;
+ eventRec->what = action;
eventRec->message = char_codes | ((key_code & 0xff) << 8);
result = 1;
}