Use Mouse Click for Touchpad Button in GUI (#167)

This commit is contained in:
3kinox 2020-02-16 17:59:09 +01:00 committed by GitHub
commit fe1e3835f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 0 deletions

View file

@ -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();

View file

@ -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);

View file

@ -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;

View file

@ -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)