emilk / egui

egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
https://www.egui.rs/
Apache License 2.0
22.51k stars 1.61k forks source link

Broken CursorIcons in native MacOS versions ~14.1 and above #5385

Open voidburn opened 3 days ago

voidburn commented 3 days ago

Creating this issue for visibility, this is not an Egui bug. (please assign the Winit label)

The following cursors are broken for all native builds on MacOS with versions above 14.1:

2024-11-19T08:21:46.953359Z  WARN winit::platform_impl::macos::cursor: cursor '_helpCursor' appears to be invalid
2024-11-19T08:21:47.416072Z  WARN winit::platform_impl::macos::cursor: cursor 'busyButClickableCursor' appears to be invalid
2024-11-19T08:21:51.509492Z  WARN winit::platform_impl::macos::cursor: cursor '_zoomInCursor' appears to be invalid
2024-11-19T08:21:51.905360Z  WARN winit::platform_impl::macos::cursor: cursor '_zoomOutCursor' appears to be invalid
2024-11-19T08:21:52.889228Z  WARN winit::platform_impl::macos::cursor: cursor '_windowResizeNorthEastCursor' appears to be invalid
2024-11-19T08:21:53.232156Z  WARN winit::platform_impl::macos::cursor: cursor '_windowResizeNorthWestCursor' appears to be invalid
2024-11-19T08:21:53.898392Z  WARN winit::platform_impl::macos::cursor: cursor '_windowResizeSouthEastCursor' appears to be invalid
2024-11-19T08:21:54.245413Z  WARN winit::platform_impl::macos::cursor: cursor '_windowResizeSouthWestCursor' appears to be invalid
2024-11-19T08:21:55.527909Z  WARN winit::platform_impl::macos::cursor: cursor '_windowResizeNorthEastSouthWestCursor' appears to be invalid
2024-11-19T08:21:55.912475Z  WARN winit::platform_impl::macos::cursor: cursor '_windowResizeNorthWestSouthEastCursor' appears to be invalid

This can be tested by opening any fully resizable egui::Window in the demo app and attempting to resize the windows via corners -> the cursor shown will be the default one instead of the corner resize one(s).

There is currently no way to set custom cursors in Egui, so we have a situation in which there is no temporary alternative other than Winit updating their platform implementation in order to restore functionality.

Related winit's issue: https://github.com/rust-windowing/winit/issues/3724