|  | @@ -36,7 +36,6 @@ | 
														
													
														
															
																|  |  | defer:(BOOL)flag; |  |  | defer:(BOOL)flag; | 
														
													
														
															
																|  |  | - (void) setPuglview:(PuglView*)view; |  |  | - (void) setPuglview:(PuglView*)view; | 
														
													
														
															
																|  |  | - (BOOL) windowShouldClose:(id)sender; |  |  | - (BOOL) windowShouldClose:(id)sender; | 
														
													
														
															
																|  |  | - (BOOL) canBecomeKeyWindow:(id)sender; |  |  |  | 
														
													
														
															
																|  |  | @end |  |  | @end | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | @implementation PuglWindow |  |  | @implementation PuglWindow | 
														
													
												
													
														
															
																|  | @@ -71,14 +70,9 @@ | 
														
													
														
															
																|  |  | return YES; |  |  | return YES; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | - (BOOL) canBecomeKeyWindow:(id)sender |  |  |  | 
														
													
														
															
																|  |  | { |  |  |  | 
														
													
														
															
																|  |  | return NO; |  |  |  | 
														
													
														
															
																|  |  | } |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | @end |  |  | @end | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | void |  |  |  | 
														
													
														
															
																|  |  |  |  |  | static void | 
														
													
														
															
																|  |  | puglDisplay(PuglView* view) |  |  | puglDisplay(PuglView* view) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | if (view->displayFunc) { |  |  | if (view->displayFunc) { | 
														
													
												
													
														
															
																|  | @@ -191,10 +185,6 @@ getModifiers(PuglView* view, NSEvent* ev) | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | view->event_timestamp_ms = fmod([ev timestamp] * 1000.0, UINT32_MAX); |  |  | view->event_timestamp_ms = fmod([ev timestamp] * 1000.0, UINT32_MAX); | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | double ts = [ev timestamp] * 1000.0; |  |  |  | 
														
													
														
															
																|  |  | ts = (uint32)ts % 500000;  //ridiculously large vals won't fit |  |  |  | 
														
													
														
															
																|  |  | view->event_timestamp_ms = ts; |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | unsigned mods = 0; |  |  | unsigned mods = 0; | 
														
													
														
															
																|  |  | mods |= (modifierFlags & NSShiftKeyMask)     ? PUGL_MOD_SHIFT : 0; |  |  | mods |= (modifierFlags & NSShiftKeyMask)     ? PUGL_MOD_SHIFT : 0; | 
														
													
														
															
																|  |  | mods |= (modifierFlags & NSControlKeyMask)   ? PUGL_MOD_CTRL  : 0; |  |  | mods |= (modifierFlags & NSControlKeyMask)   ? PUGL_MOD_CTRL  : 0; | 
														
													
												
													
														
															
																|  | @@ -345,7 +335,6 @@ getModifiers(PuglView* view, NSEvent* ev) | 
														
													
														
															
																|  |  | struct PuglInternalsImpl { |  |  | struct PuglInternalsImpl { | 
														
													
														
															
																|  |  | PuglOpenGLView* glview; |  |  | PuglOpenGLView* glview; | 
														
													
														
															
																|  |  | id              window; |  |  | id              window; | 
														
													
														
															
																|  |  | bool            isEmbed; |  |  |  | 
														
													
														
															
																|  |  | }; |  |  | }; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | PuglView* |  |  | PuglView* | 
														
													
												
													
														
															
																|  | @@ -379,9 +368,8 @@ puglCreate(PuglNativeWindow parent, | 
														
													
														
															
																|  |  | [window setPuglview:view]; |  |  | [window setPuglview:view]; | 
														
													
														
															
																|  |  | [window setTitle:titleString]; |  |  | [window setTitle:titleString]; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | impl->glview  = [PuglOpenGLView new]; |  |  |  | 
														
													
														
															
																|  |  | impl->window  = window; |  |  |  | 
														
													
														
															
																|  |  | impl->isEmbed = (parent != 0); |  |  |  | 
														
													
														
															
																|  |  |  |  |  | impl->glview   = [PuglOpenGLView new]; | 
														
													
														
															
																|  |  |  |  |  | impl->window   = window; | 
														
													
														
															
																|  |  | impl->glview->puglview = view; |  |  | impl->glview->puglview = view; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | [window setContentView:impl->glview]; |  |  | [window setContentView:impl->glview]; | 
														
													
												
													
														
															
																|  | @@ -411,36 +399,6 @@ puglDestroy(PuglView* view) | 
														
													
														
															
																|  |  | PuglStatus |  |  | PuglStatus | 
														
													
														
															
																|  |  | puglProcessEvents(PuglView* view) |  |  | puglProcessEvents(PuglView* view) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | if (! view->impl->isEmbed) |  |  |  | 
														
													
														
															
																|  |  | { |  |  |  | 
														
													
														
															
																|  |  | NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; |  |  |  | 
														
													
														
															
																|  |  | NSEvent* event; |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | static const NSUInteger eventMask = (NSLeftMouseDownMask | NSLeftMouseUpMask | |  |  |  | 
														
													
														
															
																|  |  | NSRightMouseDownMask | NSRightMouseUpMask | |  |  |  | 
														
													
														
															
																|  |  | NSMouseMovedMask | |  |  |  | 
														
													
														
															
																|  |  | NSLeftMouseDraggedMask | NSRightMouseDraggedMask | |  |  |  | 
														
													
														
															
																|  |  | NSMouseEnteredMask | NSMouseExitedMask | |  |  |  | 
														
													
														
															
																|  |  | NSKeyDownMask | NSKeyUpMask | |  |  |  | 
														
													
														
															
																|  |  | NSFlagsChangedMask | |  |  |  | 
														
													
														
															
																|  |  | NSCursorUpdateMask | NSScrollWheelMask); |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | for (;;) { |  |  |  | 
														
													
														
															
																|  |  | event = [view->impl->window |  |  |  | 
														
													
														
															
																|  |  | nextEventMatchingMask:eventMask |  |  |  | 
														
													
														
															
																|  |  | untilDate:[NSDate distantPast] |  |  |  | 
														
													
														
															
																|  |  | inMode:NSEventTrackingRunLoopMode |  |  |  | 
														
													
														
															
																|  |  | dequeue:YES]; |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | if (event == nil) |  |  |  | 
														
													
														
															
																|  |  | break; |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | [view->impl->window sendEvent: event]; |  |  |  | 
														
													
														
															
																|  |  | } |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | [pool release]; |  |  |  | 
														
													
														
															
																|  |  | } |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | [view->impl->glview setNeedsDisplay: YES]; |  |  | [view->impl->glview setNeedsDisplay: YES]; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | return PUGL_SUCCESS; |  |  | return PUGL_SUCCESS; | 
														
													
												
													
														
															
																|  | 
 |