Double click on PiP to switch back to fullscreen.

This commit is contained in:
John Preston 2020-02-03 13:50:26 +04:00
parent 2e1e13b843
commit 47f9978c46
2 changed files with 17 additions and 0 deletions

View File

@ -734,6 +734,9 @@ void Pip::setupPanel() {
case QEvent::MouseButtonRelease:
handleMouseRelease(static_cast<QMouseEvent*>(e.get())->button());
break;
case QEvent::MouseButtonDblClick:
handleDoubleClick(static_cast<QMouseEvent*>(e.get())->button());
break;
}
}, _panel.lifetime());
}
@ -797,9 +800,11 @@ void Pip::handleMouseRelease(Qt::MouseButton button) {
|| _panel.dragging()
|| !pressed
|| *pressed != _over) {
_lastHandledPress = std::nullopt;
return;
}
_lastHandledPress = _over;
switch (_over) {
case OverState::Close: _panel.close(); break;
case OverState::Enlarge: _closeAndContinue(); break;
@ -807,6 +812,16 @@ void Pip::handleMouseRelease(Qt::MouseButton button) {
}
}
void Pip::handleDoubleClick(Qt::MouseButton button) {
if (_over != OverState::Other
|| !_lastHandledPress
|| *_lastHandledPress != _over) {
return;
}
playbackPauseResume(); // Un-click the first click.
_closeAndContinue();
}
void Pip::setupButtons() {
_close.state = OverState::Close;
_enlarge.state = OverState::Enlarge;

View File

@ -153,6 +153,7 @@ private:
void handleMouseMove(QPoint position);
void handleMousePress(Qt::MouseButton button);
void handleMouseRelease(Qt::MouseButton button);
void handleDoubleClick(Qt::MouseButton button);
void handleLeave();
void handleClose();
@ -166,6 +167,7 @@ private:
bool _showPause = false;
OverState _over = OverState::None;
std::optional<OverState> _pressed;
std::optional<OverState> _lastHandledPress;
Button _close;
Button _enlarge;
Button _playback;