diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 2fdf7b6960..9a2d320329 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3591,7 +3591,14 @@ void Application::setPreferAvatarFingerOverStylus(bool value) { void Application::setPreferredCursor(const QString& cursorName) { qCDebug(interfaceapp) << "setPreferredCursor" << cursorName; - _preferredCursor.set(cursorName.isEmpty() ? DEFAULT_CURSOR_NAME : cursorName); + + if (_displayPlugin && _displayPlugin->isHmd()) { + _preferredCursor.set(cursorName.isEmpty() ? DEFAULT_CURSOR_NAME : cursorName); + } + else { + _preferredCursor.set(cursorName.isEmpty() ? Cursor::Manager::getIconName(Cursor::Icon::SYSTEM) : cursorName); + } + showCursor(Cursor::Manager::lookupIcon(_preferredCursor.get())); } @@ -5041,7 +5048,7 @@ void Application::idle() { } } #endif - + checkChangeCursor(); #if !defined(DISABLE_QML) diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp index 0dd8b3f268..bb94195f85 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp @@ -38,6 +38,7 @@ #include <gpu/gl/GLBackend.h> #include <GeometryCache.h> +#include <CursorManager.h> #include <FramebufferCache.h> #include <shared/NsightHelpers.h> #include <ui-plugins/PluginContainer.h> @@ -681,11 +682,14 @@ void OpenGLDisplayPlugin::compositeLayers() { compositeExtra(); } - // Draw the pointer last so it's on top of everything - auto compositorHelper = DependencyManager::get<CompositorHelper>(); - if (compositorHelper->getReticleVisible()) { - PROFILE_RANGE_EX(render_detail, "compositePointer", 0xff0077ff, (uint64_t)presentCount()) + auto& cursorManager = Cursor::Manager::instance(); + if (isHmd() || cursorManager.getCursor()->getIcon() == Cursor::RETICLE) { + auto compositorHelper = DependencyManager::get<CompositorHelper>(); + // Draw the pointer last so it's on top of everything + if (compositorHelper->getReticleVisible()) { + PROFILE_RANGE_EX(render_detail, "compositePointer", 0xff0077ff, (uint64_t)presentCount()) compositePointer(); + } } }