Skip to content

Commit

Permalink
REVIEWED: SetMouseCursor() #3416
Browse files Browse the repository at this point in the history
  • Loading branch information
raysan5 committed Oct 14, 2023
1 parent b79e381 commit 37e3ffc
Showing 1 changed file with 25 additions and 27 deletions.
52 changes: 25 additions & 27 deletions src/rcore_web.c
Original file line number Diff line number Diff line change
Expand Up @@ -659,37 +659,35 @@ void SetMousePosition(int x, int y)
// Set mouse cursor
void SetMouseCursor(int cursor)
{
CORE.Input.Mouse.cursor = cursor;
const char *cursorName;
switch (cursor)
if (CORE.Input.Mouse.cursor != cursor)
{
case MOUSE_CURSOR_IBEAM: cursorName = "text"; break;
case MOUSE_CURSOR_CROSSHAIR: cursorName = "crosshair"; break;
case MOUSE_CURSOR_POINTING_HAND: cursorName = "pointer"; break;
case MOUSE_CURSOR_RESIZE_EW: cursorName = "ew-resize"; break;
case MOUSE_CURSOR_RESIZE_NS: cursorName = "ns-resize"; break;
case MOUSE_CURSOR_RESIZE_NWSE: cursorName = "nwse-resize"; break;
case MOUSE_CURSOR_RESIZE_NESW: cursorName = "nesw-resize"; break;
case MOUSE_CURSOR_RESIZE_ALL: cursorName = "move"; break;
case MOUSE_CURSOR_NOT_ALLOWED: cursorName = "not-allowed"; break;

case MOUSE_CURSOR_ARROW: // can't find a name specifically for arrow cursor
case MOUSE_CURSOR_DEFAULT:
{
cursorName = "default";
} break;
const char *cursorName = NULL;
CORE.Input.Mouse.cursor = cursor;

default:
switch (cursor)
{
TRACELOG(LOG_WARNING, "Cursor value out of bound (%d). Setting to default", cursor);
cursorName = "default";
CORE.Input.Mouse.cursor = MOUSE_CURSOR_DEFAULT;
} break;
}
case MOUSE_CURSOR_IBEAM: cursorName = "text"; break;
case MOUSE_CURSOR_CROSSHAIR: cursorName = "crosshair"; break;
case MOUSE_CURSOR_POINTING_HAND: cursorName = "pointer"; break;
case MOUSE_CURSOR_RESIZE_EW: cursorName = "ew-resize"; break;
case MOUSE_CURSOR_RESIZE_NS: cursorName = "ns-resize"; break;
case MOUSE_CURSOR_RESIZE_NWSE: cursorName = "nwse-resize"; break;
case MOUSE_CURSOR_RESIZE_NESW: cursorName = "nesw-resize"; break;
case MOUSE_CURSOR_RESIZE_ALL: cursorName = "move"; break;
case MOUSE_CURSOR_NOT_ALLOWED: cursorName = "not-allowed"; break;
case MOUSE_CURSOR_ARROW: // WARNING: It does not seem t be a specific cursor for arrow
case MOUSE_CURSOR_DEFAULT: cursorName = "default"; break;
default:
{
cursorName = "default";
CORE.Input.Mouse.cursor = MOUSE_CURSOR_DEFAULT;
} break;
}

// Set the cursor element on the canvas CSS
// The canvas is coded to the Id "canvas" on init
EM_ASM({document.getElementById("canvas").style.cursor = UTF8ToString($0);}, cursorName);
// Set the cursor element on the canvas CSS
// The canvas is coded to the Id "canvas" on init
EM_ASM({document.getElementById("canvas").style.cursor = UTF8ToString($0);}, cursorName);
}
}

// Register all input events
Expand Down

0 comments on commit 37e3ffc

Please sign in to comment.