From bdba05785e173f5419f5b2d545010c4eca1d4c58 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Tue, 26 Nov 2013 15:00:49 -0800 Subject: [PATCH] Mouse pointer fix fix. --- interface/src/Application.cpp | 15 ++++++--------- interface/src/Application.h | 2 ++ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 0574b0ab04..8e84fc65a0 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1082,7 +1082,7 @@ void Application::keyReleaseEvent(QKeyEvent* event) { void Application::mouseMoveEvent(QMouseEvent* event) { _lastMouseMove = usecTimestampNow(); - if (_mouseHidden) { + if (_mouseHidden && !isFullscreenOculus()) { getGLWidget()->setCursor(Qt::ArrowCursor); _mouseHidden = false; _seenMouseMove = true; @@ -1658,6 +1658,10 @@ void Application::findAxisAlignment() { } } +bool Application::isFullscreenOculus() const { + return OculusManager::isConnected() && _window->windowState().testFlag(Qt::WindowFullScreen); +} + void Application::nudgeVoxels() { VoxelNode* selectedNode = _voxels.getVoxelAt(_mouseVoxel.x, _mouseVoxel.y, _mouseVoxel.z, _mouseVoxel.s); if (!Menu::getInstance()->isOptionChecked(MenuOption::VoxelSelectMode) && selectedNode) { @@ -2390,20 +2394,13 @@ void Application::updateCursor(float deltaTime) { bool showWarnings = Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings); PerformanceWarning warn(showWarnings, "Application::updateCursor()"); - // in fullscreen Oculus mode, always hide cursor - if (OculusManager::isConnected() && _window->windowState().testFlag(Qt::WindowFullScreen)) { - getGLWidget()->setCursor(Qt::BlankCursor); - _mouseHidden = true; - return; - } - // watch mouse position, if it hasn't moved, hide the cursor bool underMouse = _glWidget->underMouse(); if (!_mouseHidden) { uint64_t now = usecTimestampNow(); int elapsed = now - _lastMouseMove; const int HIDE_CURSOR_TIMEOUT = 1 * 1000 * 1000; // 1 second - if (elapsed > HIDE_CURSOR_TIMEOUT && (underMouse || !_seenMouseMove)) { + if ((elapsed > HIDE_CURSOR_TIMEOUT && (underMouse || !_seenMouseMove)) || isFullscreenOculus()) { getGLWidget()->setCursor(Qt::BlankCursor); _mouseHidden = true; } diff --git a/interface/src/Application.h b/interface/src/Application.h index cd7a46b4e4..e036e8cbaf 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -295,6 +295,8 @@ private: void displayRearMirrorTools(); + bool isFullscreenOculus() const; + QMainWindow* _window; QGLWidget* _glWidget;