mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 04:12:46 +02:00
implement hide cursor on no mouse movement
This commit is contained in:
parent
f2ef80b704
commit
e91127bc5c
2 changed files with 19 additions and 0 deletions
|
@ -105,6 +105,8 @@ Application::Application(int& argc, char** argv, timeval &startup_time) :
|
||||||
_profile(QString()),
|
_profile(QString()),
|
||||||
_mouseX(0),
|
_mouseX(0),
|
||||||
_mouseY(0),
|
_mouseY(0),
|
||||||
|
_lastMouseMove(usecTimestampNow()),
|
||||||
|
_mouseHidden(false),
|
||||||
_touchAvgX(0.0f),
|
_touchAvgX(0.0f),
|
||||||
_touchAvgY(0.0f),
|
_touchAvgY(0.0f),
|
||||||
_isTouchPressed(false),
|
_isTouchPressed(false),
|
||||||
|
@ -978,6 +980,12 @@ void Application::keyReleaseEvent(QKeyEvent* event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::mouseMoveEvent(QMouseEvent* event) {
|
void Application::mouseMoveEvent(QMouseEvent* event) {
|
||||||
|
_lastMouseMove = usecTimestampNow();
|
||||||
|
if (_mouseHidden) {
|
||||||
|
getGLWidget()->setCursor(Qt::ArrowCursor);
|
||||||
|
_mouseHidden = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (activeWindow() == _window) {
|
if (activeWindow() == _window) {
|
||||||
_mouseX = event->x();
|
_mouseX = event->x();
|
||||||
_mouseY = event->y();
|
_mouseY = event->y();
|
||||||
|
@ -2119,6 +2127,15 @@ void Application::update(float deltaTime) {
|
||||||
_audio.setLastVelocity(_myAvatar.getVelocity());
|
_audio.setLastVelocity(_myAvatar.getVelocity());
|
||||||
_audio.eventuallyAnalyzePing();
|
_audio.eventuallyAnalyzePing();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// watch mouse position, if it hasn't moved, hide the cursor
|
||||||
|
uint64_t now = usecTimestampNow();
|
||||||
|
int elapsed = now - _lastMouseMove;
|
||||||
|
const int HIDE_CURSOR_TIMEOUT = 1 * 1000 * 1000; // 1 second
|
||||||
|
if (elapsed > HIDE_CURSOR_TIMEOUT) {
|
||||||
|
getGLWidget()->setCursor(Qt::BlankCursor);
|
||||||
|
_mouseHidden = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::updateAvatar(float deltaTime) {
|
void Application::updateAvatar(float deltaTime) {
|
||||||
|
|
|
@ -305,6 +305,8 @@ private:
|
||||||
int _mouseY;
|
int _mouseY;
|
||||||
int _mouseDragStartedX;
|
int _mouseDragStartedX;
|
||||||
int _mouseDragStartedY;
|
int _mouseDragStartedY;
|
||||||
|
uint64_t _lastMouseMove;
|
||||||
|
bool _mouseHidden;
|
||||||
|
|
||||||
float _touchAvgX;
|
float _touchAvgX;
|
||||||
float _touchAvgY;
|
float _touchAvgY;
|
||||||
|
|
Loading…
Reference in a new issue