mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-19 21:13:12 -07:00
Use Mouse Click for Touchpad Button in GUI (#167)
This commit is contained in:
parent
5bf530d56d
commit
fe1e3835f8
4 changed files with 25 additions and 0 deletions
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
|
#include <QMouseEvent>
|
||||||
|
|
||||||
#if CHIAKI_GUI_ENABLE_QT_GAMEPAD
|
#if CHIAKI_GUI_ENABLE_QT_GAMEPAD
|
||||||
class QGamepad;
|
class QGamepad;
|
||||||
|
@ -105,6 +106,7 @@ class StreamSession : public QObject
|
||||||
VideoDecoder *GetVideoDecoder() { return &video_decoder; }
|
VideoDecoder *GetVideoDecoder() { return &video_decoder; }
|
||||||
|
|
||||||
void HandleKeyboardEvent(QKeyEvent *event);
|
void HandleKeyboardEvent(QKeyEvent *event);
|
||||||
|
void HandleMouseEvent(QMouseEvent *event);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void CurrentImageUpdated();
|
void CurrentImageUpdated();
|
||||||
|
|
|
@ -44,6 +44,8 @@ class StreamWindow: public QMainWindow
|
||||||
void keyPressEvent(QKeyEvent *event) override;
|
void keyPressEvent(QKeyEvent *event) override;
|
||||||
void keyReleaseEvent(QKeyEvent *event) override;
|
void keyReleaseEvent(QKeyEvent *event) override;
|
||||||
void closeEvent(QCloseEvent *event) override;
|
void closeEvent(QCloseEvent *event) override;
|
||||||
|
void mousePressEvent(QMouseEvent *event) override;
|
||||||
|
void mouseReleaseEvent(QMouseEvent *event) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void SessionQuit(ChiakiQuitReason reason, const QString &reason_str);
|
void SessionQuit(ChiakiQuitReason reason, const QString &reason_str);
|
||||||
|
|
|
@ -141,6 +141,15 @@ void StreamSession::SetLoginPIN(const QString &pin)
|
||||||
chiaki_session_set_login_pin(&session, (const uint8_t *)data.constData(), data.size());
|
chiaki_session_set_login_pin(&session, (const uint8_t *)data.constData(), data.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StreamSession::HandleMouseEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
if(event->type() == QEvent::MouseButtonPress)
|
||||||
|
keyboard_state.buttons |= CHIAKI_CONTROLLER_BUTTON_TOUCHPAD;
|
||||||
|
else
|
||||||
|
keyboard_state.buttons &= ~CHIAKI_CONTROLLER_BUTTON_TOUCHPAD;
|
||||||
|
SendFeedbackState();
|
||||||
|
}
|
||||||
|
|
||||||
void StreamSession::HandleKeyboardEvent(QKeyEvent *event)
|
void StreamSession::HandleKeyboardEvent(QKeyEvent *event)
|
||||||
{
|
{
|
||||||
uint64_t button_mask;
|
uint64_t button_mask;
|
||||||
|
|
|
@ -86,6 +86,18 @@ void StreamWindow::keyReleaseEvent(QKeyEvent *event)
|
||||||
session->HandleKeyboardEvent(event);
|
session->HandleKeyboardEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StreamWindow::mousePressEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
if(session)
|
||||||
|
session->HandleMouseEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
void StreamWindow::mouseReleaseEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
if(session)
|
||||||
|
session->HandleMouseEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
void StreamWindow::closeEvent(QCloseEvent *)
|
void StreamWindow::closeEvent(QCloseEvent *)
|
||||||
{
|
{
|
||||||
if(session)
|
if(session)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue