extern GLvoid fgPlatformGetGameModeVMaxExtent( SFG_Window* window, int* x, int* y );
-extern void fghPlatformGetCursorPos(SFG_XYUse *mouse_pos);
+extern void fghPlatformGetCursorPos(const SFG_Window *window, GLboolean client, SFG_XYUse *mouse_pos);
/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
* origin when looking at a child window
* for parent windows: window->State.MouseX + glutGet( GLUT_WINDOW_X ) == mouse_pos.X
*/
- fghPlatformGetCursorPos(&mouse_pos);
+ fghPlatformGetCursorPos(NULL, GL_FALSE, &mouse_pos);
menu->X = mouse_pos.X;
menu->Y = mouse_pos.Y;
fgState.MenuStateCallback(GLUT_MENU_NOT_IN_USE);
if (fgState.MenuStatusCallback)
{
- /* Get cursor position on screen and convert to relative to parent_window's client area */
+ /* Get cursor position relative to parent_window's client area */
SFG_XYUse mouse_pos;
- fghPlatformGetCursorPos(&mouse_pos);
-
- mouse_pos.X -= glutGet( GLUT_WINDOW_X );
- mouse_pos.Y -= glutGet( GLUT_WINDOW_Y );
+ fghPlatformGetCursorPos(parent_window, GL_TRUE, &mouse_pos);
fgState.MenuStatusCallback(GLUT_MENU_NOT_IN_USE, mouse_pos.X, mouse_pos.Y);
}