mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Fix second click in media viewer double-click.
This commit is contained in:
parent
136e930362
commit
ce091b0b63
2 changed files with 17 additions and 12 deletions
|
@ -371,6 +371,12 @@ OverlayWidget::OverlayWidget()
|
||||||
}
|
}
|
||||||
}, lifetime());
|
}, lifetime());
|
||||||
|
|
||||||
|
const auto mousePosition = [](not_null<QEvent*> e) {
|
||||||
|
return static_cast<QMouseEvent*>(e.get())->pos();
|
||||||
|
};
|
||||||
|
const auto mouseButton = [](not_null<QEvent*> e) {
|
||||||
|
return static_cast<QMouseEvent*>(e.get())->button();
|
||||||
|
};
|
||||||
base::install_event_filter(_widget, [=](not_null<QEvent*> e) {
|
base::install_event_filter(_widget, [=](not_null<QEvent*> e) {
|
||||||
const auto type = e->type();
|
const auto type = e->type();
|
||||||
if (type == QEvent::Move) {
|
if (type == QEvent::Move) {
|
||||||
|
@ -385,15 +391,11 @@ OverlayWidget::OverlayWidget()
|
||||||
.arg(size.height()));
|
.arg(size.height()));
|
||||||
updateControlsGeometry();
|
updateControlsGeometry();
|
||||||
} else if (type == QEvent::MouseButtonPress) {
|
} else if (type == QEvent::MouseButtonPress) {
|
||||||
handleMousePress(
|
handleMousePress(mousePosition(e), mouseButton(e));
|
||||||
static_cast<QMouseEvent*>(e.get())->pos(),
|
|
||||||
static_cast<QMouseEvent*>(e.get())->button());
|
|
||||||
} else if (type == QEvent::MouseButtonRelease) {
|
} else if (type == QEvent::MouseButtonRelease) {
|
||||||
handleMouseRelease(
|
handleMouseRelease(mousePosition(e), mouseButton(e));
|
||||||
static_cast<QMouseEvent*>(e.get())->pos(),
|
|
||||||
static_cast<QMouseEvent*>(e.get())->button());
|
|
||||||
} else if (type == QEvent::MouseMove) {
|
} else if (type == QEvent::MouseMove) {
|
||||||
handleMouseMove(static_cast<QMouseEvent*>(e.get())->pos());
|
handleMouseMove(mousePosition(e));
|
||||||
} else if (type == QEvent::KeyPress) {
|
} else if (type == QEvent::KeyPress) {
|
||||||
handleKeyPress(static_cast<QKeyEvent*>(e.get()));
|
handleKeyPress(static_cast<QKeyEvent*>(e.get()));
|
||||||
} else if (type == QEvent::ContextMenu) {
|
} else if (type == QEvent::ContextMenu) {
|
||||||
|
@ -406,9 +408,10 @@ OverlayWidget::OverlayWidget()
|
||||||
return base::EventFilterResult::Cancel;
|
return base::EventFilterResult::Cancel;
|
||||||
}
|
}
|
||||||
} else if (type == QEvent::MouseButtonDblClick) {
|
} else if (type == QEvent::MouseButtonDblClick) {
|
||||||
const auto position = static_cast<QMouseEvent*>(e.get())->pos();
|
if (handleDoubleClick(mousePosition(e), mouseButton(e))) {
|
||||||
if (handleDoubleClick(position)) {
|
|
||||||
return base::EventFilterResult::Cancel;
|
return base::EventFilterResult::Cancel;
|
||||||
|
} else {
|
||||||
|
handleMousePress(mousePosition(e), mouseButton(e));
|
||||||
}
|
}
|
||||||
} else if (type == QEvent::UpdateRequest) {
|
} else if (type == QEvent::UpdateRequest) {
|
||||||
_wasRepainted = true;
|
_wasRepainted = true;
|
||||||
|
@ -4073,10 +4076,12 @@ void OverlayWidget::handleMousePress(
|
||||||
activateControls();
|
activateControls();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OverlayWidget::handleDoubleClick(QPoint position) {
|
bool OverlayWidget::handleDoubleClick(
|
||||||
|
QPoint position,
|
||||||
|
Qt::MouseButton button) {
|
||||||
updateOver(position);
|
updateOver(position);
|
||||||
|
|
||||||
if (_over != OverVideo || !_streamed) {
|
if (_over != OverVideo || !_streamed || button != Qt::LeftButton) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
playbackToggleFullScreen();
|
playbackToggleFullScreen();
|
||||||
|
|
|
@ -153,7 +153,7 @@ private:
|
||||||
void handleMouseRelease(QPoint position, Qt::MouseButton button);
|
void handleMouseRelease(QPoint position, Qt::MouseButton button);
|
||||||
void handleMouseMove(QPoint position);
|
void handleMouseMove(QPoint position);
|
||||||
bool handleContextMenu(std::optional<QPoint> position);
|
bool handleContextMenu(std::optional<QPoint> position);
|
||||||
bool handleDoubleClick(QPoint position);
|
bool handleDoubleClick(QPoint position, Qt::MouseButton button);
|
||||||
bool handleTouchEvent(not_null<QTouchEvent*> e);
|
bool handleTouchEvent(not_null<QTouchEvent*> e);
|
||||||
void handleWheelEvent(not_null<QWheelEvent*> e);
|
void handleWheelEvent(not_null<QWheelEvent*> e);
|
||||||
void handleKeyPress(not_null<QKeyEvent*> e);
|
void handleKeyPress(not_null<QKeyEvent*> e);
|
||||||
|
|
Loading…
Add table
Reference in a new issue