@@ -589,21 +589,26 @@ void SSView::paintGL() {
589589 receiver->onRender ();
590590}
591591
592+ static inline void setMouseKeyModifiers (MouseEvent& me, const QInputEvent* qe)
593+ {
594+ Qt::KeyboardModifiers mod = qe->modifiers ();
595+ me.shiftDown = mod & Qt::ShiftModifier ? true : false ;
596+ me.controlDown = mod & Qt::ControlModifier ? true : false ;
597+ }
598+
592599void SSView::wheelEvent (QWheelEvent* event)
593600{
594601 const double wheelDelta=120.0 ;
595602 slvMouseEvent.button = MouseEvent::Button::NONE;
596603 slvMouseEvent.type = MouseEvent::Type::SCROLL_VERT;
597604 slvMouseEvent.scrollDelta = (double )event->angleDelta ().y () / wheelDelta;
605+ setMouseKeyModifiers (slvMouseEvent, event);
598606
599607 receiver->onMouseEvent (slvMouseEvent);
600608}
601609
602610void SSView::updateSlvSpaceMouseEvent (QMouseEvent* event)
603611{
604- slvMouseEvent.shiftDown = false ;
605- slvMouseEvent.controlDown = false ;
606-
607612 switch (event->type ())
608613 {
609614 case QEvent::MouseMove:
@@ -658,30 +663,19 @@ void SSView::updateSlvSpaceMouseEvent(QMouseEvent* event)
658663 slvMouseEvent.x = double (event->x ());
659664 slvMouseEvent.y = double (event->y ());
660665#endif
661- Qt::KeyboardModifiers keyModifier = QGuiApplication::keyboardModifiers ();
662666
663- switch (keyModifier)
664- {
665- case Qt::ShiftModifier:
666- slvMouseEvent.shiftDown = true ;
667- break ;
668- case Qt::ControlModifier:
669- slvMouseEvent.controlDown = true ;
670- break ;
671- }
667+ setMouseKeyModifiers (slvMouseEvent, event);
672668
673669 receiver->onMouseEvent (slvMouseEvent);
674670}
675671
676672void SSView::updateSlvSpaceKeyEvent (QKeyEvent* event)
677673{
678674 slvKeyEvent.key = KeyboardEvent::Key (-1 );
679- slvKeyEvent.shiftDown = false ;
680- slvKeyEvent.controlDown = false ;
681- if (event->modifiers () == Qt::ShiftModifier)
682- slvKeyEvent.shiftDown = true ;
683- if (event->modifiers () == Qt::ControlModifier)
684- slvKeyEvent.controlDown = true ;
675+
676+ Qt::KeyboardModifiers mod = event->modifiers ();
677+ slvKeyEvent.shiftDown = mod & Qt::ShiftModifier ? true : false ;
678+ slvKeyEvent.controlDown = mod & Qt::ControlModifier ? true : false ;
685679
686680 if (event->key () >= Qt::Key_F1 && event->key () <= Qt::Key_F35) {
687681 slvKeyEvent.key = KeyboardEvent::Key::FUNCTION;
0 commit comments