mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 11:00:48 +03:00
Fix scrolling the room list using touch
This commit is contained in:
parent
97688763f6
commit
b8ce9d543d
2 changed files with 32 additions and 30 deletions
|
@ -484,37 +484,37 @@ RoomInfoListItem::mousePressEvent(QMouseEvent *event)
|
|||
if (event->buttons() == Qt::RightButton) {
|
||||
QWidget::mousePressEvent(event);
|
||||
return;
|
||||
} else if (event->buttons() == Qt::LeftButton) {
|
||||
if (roomType_ == RoomType::Invited) {
|
||||
const auto point = event->pos();
|
||||
|
||||
if (acceptBtnRegion_.contains(point))
|
||||
emit acceptInvite(roomId_);
|
||||
|
||||
if (declineBtnRegion_.contains(point))
|
||||
emit declineInvite(roomId_);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
emit clicked(roomId_);
|
||||
|
||||
setPressedState(true);
|
||||
|
||||
// Ripple on mouse position by default.
|
||||
QPoint pos = event->pos();
|
||||
qreal radiusEndValue = static_cast<qreal>(width()) / 3;
|
||||
|
||||
Ripple *ripple = new Ripple(pos);
|
||||
|
||||
ripple->setRadiusEndValue(radiusEndValue);
|
||||
ripple->setOpacityStartValue(0.15);
|
||||
ripple->setColor(QColor("white"));
|
||||
ripple->radiusAnimation()->setDuration(200);
|
||||
ripple->opacityAnimation()->setDuration(400);
|
||||
|
||||
ripple_overlay_->addRipple(ripple);
|
||||
}
|
||||
|
||||
if (roomType_ == RoomType::Invited) {
|
||||
const auto point = event->pos();
|
||||
|
||||
if (acceptBtnRegion_.contains(point))
|
||||
emit acceptInvite(roomId_);
|
||||
|
||||
if (declineBtnRegion_.contains(point))
|
||||
emit declineInvite(roomId_);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
emit clicked(roomId_);
|
||||
|
||||
setPressedState(true);
|
||||
|
||||
// Ripple on mouse position by default.
|
||||
QPoint pos = event->pos();
|
||||
qreal radiusEndValue = static_cast<qreal>(width()) / 3;
|
||||
|
||||
Ripple *ripple = new Ripple(pos);
|
||||
|
||||
ripple->setRadiusEndValue(radiusEndValue);
|
||||
ripple->setOpacityStartValue(0.15);
|
||||
ripple->setColor(QColor("white"));
|
||||
ripple->radiusAnimation()->setDuration(200);
|
||||
ripple->opacityAnimation()->setDuration(400);
|
||||
|
||||
ripple_overlay_->addRipple(ripple);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -45,8 +45,10 @@ RoomList::RoomList(QSharedPointer<UserSettings> userSettings, QWidget *parent)
|
|||
scrollArea_->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents);
|
||||
scrollArea_->setWidgetResizable(true);
|
||||
scrollArea_->setAlignment(Qt::AlignLeading | Qt::AlignTop | Qt::AlignVCenter);
|
||||
scrollArea_->setAttribute(Qt::WA_AcceptTouchEvents);
|
||||
|
||||
QScroller::grabGesture(scrollArea_, QScroller::TouchGesture);
|
||||
QScroller::grabGesture(scrollArea_, QScroller::LeftMouseButtonGesture);
|
||||
|
||||
// The scrollbar on macOS will hide itself when not active so it won't interfere
|
||||
// with the content.
|
||||
|
|
Loading…
Reference in a new issue