|
@@ -406,9 +406,7 @@ typedef struct CoreData {
|
|
|
|
|
|
bool cursorHidden; // Track if cursor is hidden
|
|
|
bool cursorOnScreen; // Tracks if cursor is inside client area
|
|
|
-#if defined(PLATFORM_WEB)
|
|
|
- bool cursorLockRequired; // Ask for cursor pointer lock on next click
|
|
|
-#endif
|
|
|
+
|
|
|
char currentButtonState[3]; // Registers current mouse button state
|
|
|
char previousButtonState[3]; // Registers previous mouse button state
|
|
|
int currentWheelMove; // Registers current mouse wheel variation
|
|
@@ -1301,9 +1299,6 @@ void EnableCursor(void)
|
|
|
#if defined(PLATFORM_DESKTOP)
|
|
|
glfwSetInputMode(CORE.Window.handle, GLFW_CURSOR, GLFW_CURSOR_NORMAL);
|
|
|
#endif
|
|
|
-#if defined(PLATFORM_WEB)
|
|
|
- CORE.Input.Mouse.cursorLockRequired = true;
|
|
|
-#endif
|
|
|
#if defined(PLATFORM_UWP)
|
|
|
UWPGetMouseUnlockFunc()();
|
|
|
#endif
|
|
@@ -1316,9 +1311,6 @@ void DisableCursor(void)
|
|
|
#if defined(PLATFORM_DESKTOP)
|
|
|
glfwSetInputMode(CORE.Window.handle, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
|
|
|
#endif
|
|
|
-#if defined(PLATFORM_WEB)
|
|
|
- CORE.Input.Mouse.cursorLockRequired = true;
|
|
|
-#endif
|
|
|
#if defined(PLATFORM_UWP)
|
|
|
UWPGetMouseLockFunc()();
|
|
|
#endif
|
|
@@ -4226,20 +4218,19 @@ static EM_BOOL EmscriptenKeyboardCallback(int eventType, const EmscriptenKeyboar
|
|
|
static EM_BOOL EmscriptenMouseCallback(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData)
|
|
|
{
|
|
|
// Lock mouse pointer when click on screen
|
|
|
- if ((eventType == EMSCRIPTEN_EVENT_CLICK) && CORE.Input.Mouse.cursorLockRequired)
|
|
|
+ if ((eventType == EMSCRIPTEN_EVENT_CLICK))
|
|
|
{
|
|
|
EmscriptenPointerlockChangeEvent plce;
|
|
|
emscripten_get_pointerlock_status(&plce);
|
|
|
+
|
|
|
+ int result = emscripten_request_pointerlock("#canvas", 1); // TODO: It does not work!
|
|
|
+
|
|
|
+ // result -> EMSCRIPTEN_RESULT_DEFERRED
|
|
|
+ // The requested operation cannot be completed now for web security reasons,
|
|
|
+ // and has been deferred for completion in the next event handler. --> but it never happens!
|
|
|
|
|
|
- if (!plce.isActive) emscripten_request_pointerlock(0, 1);
|
|
|
- else
|
|
|
- {
|
|
|
- emscripten_exit_pointerlock();
|
|
|
- emscripten_get_pointerlock_status(&plce);
|
|
|
- //if (plce.isActive) TRACELOG(LOG_WARNING, "Pointer lock exit did not work!");
|
|
|
- }
|
|
|
-
|
|
|
- CORE.Input.Mouse.cursorLockRequired = false;
|
|
|
+ //if (!plce.isActive) emscripten_request_pointerlock(0, 1);
|
|
|
+ //else emscripten_exit_pointerlock();
|
|
|
}
|
|
|
|
|
|
return 0;
|