diff --git a/backends/imgui_impl_osx.mm b/backends/imgui_impl_osx.mm index 2aa2c52e134b..cd6489a7c23f 100644 --- a/backends/imgui_impl_osx.mm +++ b/backends/imgui_impl_osx.mm @@ -96,13 +96,13 @@ - (void)keyDown:(NSEvent *)event { - (void)insertText:(id)aString replacementRange:(NSRange)replacementRange { ImGuiIO& io = ImGui::GetIO(); - + NSString *characters; if ([aString isKindOfClass:[NSAttributedString class]]) characters = [aString string]; else characters = (NSString *)aString; - + io.AddInputCharactersUTF8(characters.UTF8String); } @@ -271,7 +271,7 @@ bool ImGui_ImplOSX_Init(NSView *view) selector:@selector(onApplicationBecomeInactive:) name:NSApplicationDidResignActiveNotification object:nil]; - + g_KeyEventResponder = [[KeyEventResponder alloc] initWithFrame:NSZeroRect]; [view addSubview:g_KeyEventResponder]; @@ -309,8 +309,13 @@ static void ImGui_ImplOSX_UpdateMouseCursorAndButtons() } else { + NSCursor *desired = g_MouseCursors[imgui_cursor] ?: g_MouseCursors[ImGuiMouseCursor_Arrow]; // Show OS mouse cursor - [g_MouseCursors[g_MouseCursors[imgui_cursor] ? imgui_cursor : ImGuiMouseCursor_Arrow] set]; + if (desired != NSCursor.currentCursor) + { + [desired set]; + } + // [g_MouseCursors[g_MouseCursors[imgui_cursor] ? imgui_cursor : ImGuiMouseCursor_Arrow] set]; if (g_MouseCursorHidden) { g_MouseCursorHidden = false;