started moving new input code into darwinEvents.c so that it may be shared by the three servers

This commit is contained in:
Ben Byer 2007-03-05 02:30:56 -08:00
parent 8ba5e8d820
commit 537dc5ecde
2 changed files with 11 additions and 10 deletions

View File

@ -56,7 +56,7 @@ extern int darwinFakeButtons, input_check_flag;
// extern Bool enable_stereo; // extern Bool enable_stereo;
Bool enable_stereo; //<-- this needs to go back to being an extern once glxCGL is fixed Bool enable_stereo; //<-- this needs to go back to being an extern once glxCGL is fixed
static xEvent *quartzEvents; extern xEvent *darwinEvents;
X11Application *X11App; X11Application *X11App;
@ -805,7 +805,6 @@ void X11ApplicationMain (int argc, const char *argv[],
pool = [[NSAutoreleasePool alloc] init]; pool = [[NSAutoreleasePool alloc] init];
X11App = (X11Application *) [X11Application sharedApplication]; X11App = (X11Application *) [X11Application sharedApplication];
quartzEvents = (xEvent *)malloc(sizeof(xEvent) * GetMaximumEventsNum());
init_ports (); init_ports ();
@ -914,33 +913,33 @@ static void send_nsevent (NSEventType type, NSEvent *e) {
button_state |= (1 << ev_button); button_state |= (1 << ev_button);
} else if (ev_type==ButtonRelease && (button_state & (1 << ev_button)) == 0) break; } else if (ev_type==ButtonRelease && (button_state & (1 << ev_button)) == 0) break;
num_events = GetPointerEvents(quartzEvents, darwinPointer, ev_type, ev_button, num_events = GetPointerEvents(darwinEvents, darwinPointer, ev_type, ev_button,
POINTER_ABSOLUTE, 0, 2, valuators); POINTER_ABSOLUTE, 0, 2, valuators);
for(i=0; i<num_events; i++) for(i=0; i<num_events; i++)
mieqEnqueue (darwinPointer,&quartzEvents[i]); mieqEnqueue (darwinPointer,&darwinEvents[i]);
break; break;
case NSScrollWheel: case NSScrollWheel:
count = [e deltaY]; count = [e deltaY];
ev_button = count > 0.0f ? 4 : 5; ev_button = count > 0.0f ? 4 : 5;
for (count = fabs(count); count > 0.0; count = count - 1.0f) { for (count = fabs(count); count > 0.0; count = count - 1.0f) {
num_events = GetPointerEvents(quartzEvents, darwinPointer, ButtonPress, ev_button, num_events = GetPointerEvents(darwinEvents, darwinPointer, ButtonPress, ev_button,
POINTER_ABSOLUTE, 0, 2, valuators); POINTER_ABSOLUTE, 0, 2, valuators);
for(i=0; i<num_events; i++) for(i=0; i<num_events; i++)
mieqEnqueue(darwinPointer,&quartzEvents[i]); mieqEnqueue(darwinPointer,&darwinEvents[i]);
num_events = GetPointerEvents(quartzEvents, darwinPointer, ButtonRelease, ev_button, num_events = GetPointerEvents(darwinEvents, darwinPointer, ButtonRelease, ev_button,
POINTER_ABSOLUTE, 0, 2, valuators); POINTER_ABSOLUTE, 0, 2, valuators);
for(i=0; i<num_events; i++) for(i=0; i<num_events; i++)
mieqEnqueue(darwinPointer,&quartzEvents[i]); mieqEnqueue(darwinPointer,&darwinEvents[i]);
} }
break; break;
case NSKeyDown: // do we need to translate these keyCodes? case NSKeyDown: // do we need to translate these keyCodes?
case NSKeyUp: case NSKeyUp:
num_events = GetKeyboardEvents(quartzEvents, darwinKeyboard, num_events = GetKeyboardEvents(darwinEvents, darwinKeyboard,
(type == NSKeyDown)?KeyPress:KeyRelease, [e keyCode]); (type == NSKeyDown)?KeyPress:KeyRelease, [e keyCode]);
for(i=0; i<num_events; i++) for(i=0; i<num_events; i++)
mieqEnqueue(darwinKeyboard,&quartzEvents[i]); mieqEnqueue(darwinKeyboard,&darwinEvents[i]);
break; break;
case NSFlagsChanged: case NSFlagsChanged:

View File

@ -74,6 +74,7 @@ typedef struct _EventQueue {
} EventQueueRec, *EventQueuePtr; } EventQueueRec, *EventQueuePtr;
static EventQueueRec darwinEventQueue; static EventQueueRec darwinEventQueue;
xEvent *darwinEvents;
/* /*
* DarwinPressModifierMask * DarwinPressModifierMask
@ -179,6 +180,7 @@ static void DarwinSimulateMouseClick(
Bool DarwinEQInit(DevicePtr pKbd, DevicePtr pPtr) { Bool DarwinEQInit(DevicePtr pKbd, DevicePtr pPtr) {
darwinEvents = (xEvent *)malloc(sizeof(xEvent) * GetMaximumEventsNum());
mieqInit(); mieqInit();
darwinEventQueue.head = darwinEventQueue.tail = 0; darwinEventQueue.head = darwinEventQueue.tail = 0;
darwinEventQueue.lastEventTime = GetTimeInMillis (); darwinEventQueue.lastEventTime = GetTimeInMillis ();