mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-07-16 10:03:35 -07:00
Hide Mouse after Timeout in Qt GUI
This commit is contained in:
parent
4f60ceb1d4
commit
a3ae9d4f74
3 changed files with 36 additions and 4 deletions
|
@ -59,6 +59,8 @@ class AVOpenGLWidget: public QOpenGLWidget
|
|||
AVOpenGLFrameUploader *frame_uploader;
|
||||
QThread *frame_uploader_thread;
|
||||
|
||||
QTimer *mouse_timer;
|
||||
|
||||
public:
|
||||
static QSurfaceFormat CreateSurfaceFormat();
|
||||
|
||||
|
@ -69,8 +71,15 @@ class AVOpenGLWidget: public QOpenGLWidget
|
|||
AVOpenGLFrame *GetBackgroundFrame() { return &frames[1 - frame_fg]; }
|
||||
|
||||
protected:
|
||||
void mouseMoveEvent(QMouseEvent *event) override;
|
||||
|
||||
void initializeGL() override;
|
||||
void paintGL() override;
|
||||
|
||||
private slots:
|
||||
void ResetMouseTimeout();
|
||||
public slots:
|
||||
void HideMouse();
|
||||
};
|
||||
|
||||
#endif // CHIAKI_AVOPENGLWIDGET_H
|
||||
|
|
|
@ -23,6 +23,9 @@
|
|||
#include <QOpenGLExtraFunctions>
|
||||
#include <QOpenGLDebugLogger>
|
||||
#include <QThread>
|
||||
#include <QTimer>
|
||||
|
||||
#define MOUSE_TIMEOUT_MS 1000
|
||||
|
||||
//#define DEBUG_OPENGL
|
||||
|
||||
|
@ -96,6 +99,11 @@ AVOpenGLWidget::AVOpenGLWidget(VideoDecoder *decoder, QWidget *parent)
|
|||
frame_uploader = nullptr;
|
||||
frame_uploader_thread = nullptr;
|
||||
frame_fg = 0;
|
||||
|
||||
setMouseTracking(true);
|
||||
mouse_timer = new QTimer(this);
|
||||
connect(mouse_timer, &QTimer::timeout, this, &AVOpenGLWidget::HideMouse);
|
||||
ResetMouseTimeout();
|
||||
}
|
||||
|
||||
AVOpenGLWidget::~AVOpenGLWidget()
|
||||
|
@ -110,6 +118,23 @@ AVOpenGLWidget::~AVOpenGLWidget()
|
|||
delete frame_uploader_context;
|
||||
}
|
||||
|
||||
void AVOpenGLWidget::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
QOpenGLWidget::mouseMoveEvent(event);
|
||||
ResetMouseTimeout();
|
||||
}
|
||||
|
||||
void AVOpenGLWidget::ResetMouseTimeout()
|
||||
{
|
||||
unsetCursor();
|
||||
mouse_timer->start(MOUSE_TIMEOUT_MS);
|
||||
}
|
||||
|
||||
void AVOpenGLWidget::HideMouse()
|
||||
{
|
||||
setCursor(Qt::BlankCursor);
|
||||
}
|
||||
|
||||
void AVOpenGLWidget::SwapFrames()
|
||||
{
|
||||
QMutexLocker lock(&frames_mutex);
|
||||
|
|
|
@ -126,13 +126,11 @@ void StreamWindow::LoginPINRequested(bool incorrect)
|
|||
void StreamWindow::ToggleFullscreen()
|
||||
{
|
||||
if(isFullScreen())
|
||||
{
|
||||
setCursor(Qt::ArrowCursor);
|
||||
showNormal();
|
||||
}
|
||||
else
|
||||
{
|
||||
setCursor(Qt::BlankCursor);
|
||||
showFullScreen();
|
||||
if(av_widget)
|
||||
av_widget->HideMouse();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue