diff --git a/src/platforms/rcore_web.c b/src/platforms/rcore_web.c index 046b79187..6f7a3d63f 100644 --- a/src/platforms/rcore_web.c +++ b/src/platforms/rcore_web.c @@ -1591,8 +1591,8 @@ static void MouseCursorPosCallback(GLFWwindow *window, double x, double y) // If the pointer is not locked, follow the position if (!CORE.Input.Mouse.cursorHidden) { - CORE.Input.Mouse.currentPosition.x = (float)x; - CORE.Input.Mouse.currentPosition.y = (float)y; + CORE.Input.Mouse.currentPosition.x = (float) x * CORE.Window.screen.width / CORE.Window.initScreen.width; + CORE.Input.Mouse.currentPosition.y = (float) y * CORE.Window.screen.height / CORE.Window.initScreen.height; CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition; } diff --git a/src/rcore.c b/src/rcore.c index e97ef357c..c34519c0c 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -295,6 +295,7 @@ typedef struct CoreData { Point position; // Window position (required on fullscreen toggle) Point previousPosition; // Window previous position (required on borderless windowed toggle) Size display; // Display width and height (monitor, device-screen, LCD, ...) + Size initScreen; // when init window, Screen width and height (used render area) Size screen; // Screen width and height (used render area) Size previousScreen; // Screen previous width and height (required on borderless windowed toggle) Size currentFbo; // Current render width and height (depends on active fbo) @@ -668,6 +669,9 @@ void InitWindow(int width, int height, const char *title) // Initialize window data CORE.Window.screen.width = width; CORE.Window.screen.height = height; + CORE.Window.initScreen.width = width; + CORE.Window.initScreen.height = height; + CORE.Window.eventWaiting = false; CORE.Window.screenScale = MatrixIdentity(); // No draw scaling required by default if ((title != NULL) && (title[0] != 0)) CORE.Window.title = title;