Combined EnterNotify and LeaveNotify event processing in the UNIX_X11
[freeglut] / src / freeglut_main.c
index 080b90b..fb8f9bb 100644 (file)
@@ -619,20 +619,13 @@ void FGAPIENTRY glutMainLoopEvent( void )
         break;
 
         case EnterNotify:
-        {
-            GETWINDOW( xcrossing );
-            GETMOUSE( xcrossing );
-            INVOKE_WCB( *window, Entry, ( GLUT_ENTERED ) );
-        }
-        break;
-        /* XXX Combine EnterNotify and LeaveNotify */
         case LeaveNotify:
-        {
             GETWINDOW( xcrossing );
             GETMOUSE( xcrossing );
-            INVOKE_WCB( *window, Entry, ( GLUT_LEFT ) );
-        }
-        break;
+            INVOKE_WCB( *window, Entry, ( ( EnterNotify == event.type ) ?
+                                          GLUT_ENTERED :
+                                          GLUT_LEFT ) );
+            break;
 
         case MotionNotify:
         {
@@ -952,6 +945,9 @@ void FGAPIENTRY glutMainLoopEvent( void )
         }
         break;
 
+        case ReparentNotify:
+            break; /* XXX Should disable this event */
+
         default:
             fgWarning ("Unknown X event type: %d", event.type);
             break;