5555
5656static Q_LOGGING_CATEGORY (log, " VNC.Connect" )
5757static Q_LOGGING_CATEGORY(logVNC, " VNC.Log" )
58-
58+ static Q_LOGGING_CATEGORY(logKey, " VNC.Connect.Key" )
59+ static Q_LOGGING_CATEGORY(logMouse, " VNC.Connect.Mouse" )
60+
5961class VncLogger: public rfb::Logger
6062{
6163public:
@@ -799,20 +801,21 @@ void CConnectVnc::mousePressEvent(QMouseEvent *event)
799801 if (!writer ()) return ;
800802 if (m_pPara && m_pPara->GetOnlyView ()) return ;
801803
802- unsigned char mask = 0 ;
804+ uint8_t mask = 0 ;
803805 if (event->button () & Qt::MouseButton::LeftButton)
804806 mask |= 0x1 ;
805807 if (event->button () & Qt::MouseButton::MiddleButton)
806808 mask |= 0x2 ;
807809 if (event->button () & Qt::MouseButton::RightButton)
808810 mask |= 0x4 ;
809-
811+ if (event->button () & Qt::MouseButton::BackButton)
812+ mask |= 0x80 ;
813+
810814 QPoint pos = event->pos ();
811815 rfb::Point p (pos.x (), pos.y ());
812816
813- /*
814- qDebug(log) << "CConnectVnc::slotMousePressEvent buttons:"
815- << event->buttons() << event->button() << pos << mask;//*/
817+ qDebug (logMouse) << Q_FUNC_INFO << event->buttons () << event->button () << pos << mask;
818+
816819 try {
817820 writer ()->writePointerEvent (p, mask);
818821 } catch (rdr::Exception& e) {
@@ -824,12 +827,10 @@ void CConnectVnc::mouseReleaseEvent(QMouseEvent *event)
824827{
825828 if (!writer ()) return ;
826829 if (m_pPara && m_pPara->GetOnlyView ()) return ;
827- int mask = 0 ;
830+ uint8_t mask = 0 ;
828831 QPoint pos = event->pos ();
829832 rfb::Point p (pos.x (), pos.y ());
830- /*
831- qDebug(log) << "CConnectVnc::slotMouseReleaseEvent buttons:"
832- << event->buttons() << event->button() << pos << mask;//*/
833+ qDebug (logMouse) << Q_FUNC_INFO << event->buttons () << event->button () << pos << mask;
833834 try {
834835 writer ()->writePointerEvent (p, mask);
835836 } catch (rdr::Exception& e) {
@@ -841,18 +842,21 @@ void CConnectVnc::mouseMoveEvent(QMouseEvent *event)
841842{
842843 if (!writer ()) return ;
843844 if (m_pPara && m_pPara->GetOnlyView ()) return ;
844- int mask = 0 ;
845+
845846 QPoint pos = event->pos ();
846847 rfb::Point p (pos.x (), pos.y ());
848+ uint8_t mask = 0 ;
847849 if (event->buttons () & Qt::MouseButton::LeftButton)
848850 mask |= 0x1 ;
849851 if (event->buttons () & Qt::MouseButton::MiddleButton)
850852 mask |= 0x2 ;
851853 if (event->buttons () & Qt::MouseButton::RightButton)
852854 mask |= 0x4 ;
853- /*
854- qDebug(log) << "CConnectVnc::slotMouseMoveEvent buttons:"
855- << event->buttons() << event->button() << pos << mask;//*/
855+ if (event->buttons () & Qt::MouseButton::BackButton)
856+ mask |= 0x80 ;
857+
858+ qDebug (logMouse) << Q_FUNC_INFO << event->buttons () << event->button () << pos << mask;
859+
856860 try {
857861 writer ()->writePointerEvent (p, mask);
858862 } catch (rdr::Exception& e) {
@@ -863,19 +867,17 @@ void CConnectVnc::mouseMoveEvent(QMouseEvent *event)
863867// https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#pointerevent
864868void CConnectVnc::wheelEvent (QWheelEvent *event)
865869{
866- /*
867- qDebug(log) << "CConnectVnc::slotWheelEvent buttons:"
868- << event->buttons() << event->angleDelta() << pos;//*/
869870 if (!writer ()) return ;
870871 if (m_pPara && m_pPara->GetOnlyView ()) return ;
871- int mask = 0 ;
872-
872+ uint8_t mask = 0 ;
873873 if (event->buttons () & Qt::MouseButton::LeftButton)
874874 mask |= 0x1 ;
875875 if (event->buttons () & Qt::MouseButton::MiddleButton)
876876 mask |= 0x2 ;
877877 if (event->buttons () & Qt::MouseButton::RightButton)
878878 mask |= 0x4 ;
879+ if (event->buttons () & Qt::MouseButton::BackButton)
880+ mask |= 0x80 ;
879881
880882 QPoint d = event->angleDelta ();
881883 if (d.y () > 0 )
@@ -895,6 +897,12 @@ void CConnectVnc::wheelEvent(QWheelEvent *event)
895897#endif
896898
897899 rfb::Point p (pos.x (), pos.y ());
900+ // *
901+ qDebug (logMouse) << Q_FUNC_INFO << event->buttons ()
902+ #if QT_VERSION > QT_VERSION_CHECK(6, 0, 0)
903+ << event->button ()
904+ #endif
905+ << pos << mask; // */
898906
899907 try {
900908 writer ()->writePointerEvent (p, mask);
@@ -910,15 +918,15 @@ void CConnectVnc::keyPressEvent(QKeyEvent *event)
910918 bool modifier = false ;
911919 if (event->modifiers () & Qt::ShiftModifier)
912920 modifier = true ;
913- // qDebug(log) << "slotKeyPressEvent key:" << key << modifiers;
921+
914922 uint32_t k = TranslateRfbKey (event->key (), modifier);
915-
923+ qDebug (logKey) << Q_FUNC_INFO << event << k << modifier;
924+
916925 try {
917926 writer ()->writeKeyEvent (k, 0 , true );
918927 } catch (rdr::Exception& e) {
919928 emit sigError (-1 , e.str ());
920929 }
921-
922930}
923931
924932void CConnectVnc::keyReleaseEvent (QKeyEvent *event)
@@ -928,15 +936,15 @@ void CConnectVnc::keyReleaseEvent(QKeyEvent *event)
928936 bool modifier = false ;
929937 if (event->modifiers () & Qt::ShiftModifier)
930938 modifier = true ;
931- // qDebug(log) << "slotKeyReleaseEvent key:" << key << modifiers;
939+
932940 uint32_t k = TranslateRfbKey (event->key (), modifier);
933-
941+ qDebug (logKey) << Q_FUNC_INFO << event << k << modifier;
942+
934943 try {
935944 writer ()->writeKeyEvent (k, 0 , false );
936945 } catch (rdr::Exception& e) {
937946 emit sigError (-1 , e.str ());
938947 }
939-
940948}
941949
942950QString CConnectVnc::ConnectInformation ()
0 commit comments