- menu->X = window->State.MouseX + glutGet( GLUT_WINDOW_X );
- menu->Y = window->State.MouseY + glutGet( GLUT_WINDOW_Y );
+ /* get mouse position on screen (window->State.MouseX and window->State.MouseY
+ * are relative to client area origin), and not easy to correct given that
+ * glutGet( GLUT_WINDOW_X ) and glutGet( GLUT_WINDOW_Y ) return relative to parent
+ * origin when looking at a child window
+ * for parent windows: window->State.MouseX + glutGet( GLUT_WINDOW_X ) == mouse_pos.X
+ */
+ fghPlatformGetCursorPos(&mouse_pos);
+ menu->X = mouse_pos.X;
+ menu->Y = mouse_pos.Y;