opt mouse/keyboard event

Closes #1443

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-10-03 20:17:27 +08:00
parent 06c545acd4
commit 5747dee03d
3 changed files with 23 additions and 11 deletions

View File

@@ -279,7 +279,9 @@ class MyApp extends StatelessWidget {
final plCtr = PlPlayerController.instance; final plCtr = PlPlayerController.instance;
if (plCtr != null) { if (plCtr != null) {
if (plCtr.isFullScreen.value == true) { if (plCtr.isFullScreen.value == true) {
plCtr.triggerFullScreen(status: false); plCtr
..triggerFullScreen(status: false)
..controlsLock.value = false;
return; return;
} }

View File

@@ -155,14 +155,18 @@ class PlayerFocus extends StatelessWidget {
return true; return true;
case LogicalKeyboardKey.keyF: case LogicalKeyboardKey.keyF:
plPlayerController.triggerFullScreen( plPlayerController
..triggerFullScreen(
status: !isFullScreen, status: !isFullScreen,
inAppFullScreen: HardwareKeyboard.instance.isShiftPressed, inAppFullScreen: HardwareKeyboard.instance.isShiftPressed,
); )
..controlsLock.value = false;
return true; return true;
case LogicalKeyboardKey.escape: case LogicalKeyboardKey.escape:
if (plPlayerController.isDesktopPip) { if (plPlayerController.controlsLock.value) {
plPlayerController.onLockControl(false);
} else if (plPlayerController.isDesktopPip) {
plPlayerController.exitDesktopPip(); plPlayerController.exitDesktopPip();
} else if (isFullScreen) { } else if (isFullScreen) {
plPlayerController.triggerFullScreen(status: false); plPlayerController.triggerFullScreen(status: false);
@@ -189,7 +193,9 @@ class PlayerFocus extends StatelessWidget {
case LogicalKeyboardKey.keyP: case LogicalKeyboardKey.keyP:
if (Utils.isDesktop && hasPlayer) { if (Utils.isDesktop && hasPlayer) {
plPlayerController.toggleDesktopPip(); plPlayerController
..toggleDesktopPip()
..controlsLock.value = false;
} }
return true; return true;

View File

@@ -1786,9 +1786,13 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
final buttons = event.buttons; final buttons = event.buttons;
final isSecondaryBtn = buttons == kSecondaryMouseButton; final isSecondaryBtn = buttons == kSecondaryMouseButton;
if (isSecondaryBtn || buttons == kMiddleMouseButton) { if (isSecondaryBtn || buttons == kMiddleMouseButton) {
plPlayerController.triggerFullScreen( plPlayerController
.triggerFullScreen(
status: !isFullScreen, status: !isFullScreen,
inAppFullScreen: isSecondaryBtn, inAppFullScreen: isSecondaryBtn,
)
.whenComplete(
() => plPlayerController.initialFocalPoint = Offset.zero,
); );
} }
}, },