From 5747dee03d53923186a784c6c89eec74367f8e99 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Fri, 3 Oct 2025 20:17:27 +0800 Subject: [PATCH] opt mouse/keyboard event Closes #1443 Signed-off-by: bggRGjQaUbCoE --- lib/main.dart | 4 +++- lib/pages/video/widgets/player_focus.dart | 18 ++++++++++++------ lib/plugin/pl_player/view.dart | 12 ++++++++---- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 5b17dd6b..aceee6a3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -279,7 +279,9 @@ class MyApp extends StatelessWidget { final plCtr = PlPlayerController.instance; if (plCtr != null) { if (plCtr.isFullScreen.value == true) { - plCtr.triggerFullScreen(status: false); + plCtr + ..triggerFullScreen(status: false) + ..controlsLock.value = false; return; } diff --git a/lib/pages/video/widgets/player_focus.dart b/lib/pages/video/widgets/player_focus.dart index 8c718e77..ff60e503 100644 --- a/lib/pages/video/widgets/player_focus.dart +++ b/lib/pages/video/widgets/player_focus.dart @@ -155,14 +155,18 @@ class PlayerFocus extends StatelessWidget { return true; case LogicalKeyboardKey.keyF: - plPlayerController.triggerFullScreen( - status: !isFullScreen, - inAppFullScreen: HardwareKeyboard.instance.isShiftPressed, - ); + plPlayerController + ..triggerFullScreen( + status: !isFullScreen, + inAppFullScreen: HardwareKeyboard.instance.isShiftPressed, + ) + ..controlsLock.value = false; return true; case LogicalKeyboardKey.escape: - if (plPlayerController.isDesktopPip) { + if (plPlayerController.controlsLock.value) { + plPlayerController.onLockControl(false); + } else if (plPlayerController.isDesktopPip) { plPlayerController.exitDesktopPip(); } else if (isFullScreen) { plPlayerController.triggerFullScreen(status: false); @@ -189,7 +193,9 @@ class PlayerFocus extends StatelessWidget { case LogicalKeyboardKey.keyP: if (Utils.isDesktop && hasPlayer) { - plPlayerController.toggleDesktopPip(); + plPlayerController + ..toggleDesktopPip() + ..controlsLock.value = false; } return true; diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index fc66fd45..48d614d1 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -1786,10 +1786,14 @@ class _PLVideoPlayerState extends State final buttons = event.buttons; final isSecondaryBtn = buttons == kSecondaryMouseButton; if (isSecondaryBtn || buttons == kMiddleMouseButton) { - plPlayerController.triggerFullScreen( - status: !isFullScreen, - inAppFullScreen: isSecondaryBtn, - ); + plPlayerController + .triggerFullScreen( + status: !isFullScreen, + inAppFullScreen: isSecondaryBtn, + ) + .whenComplete( + () => plPlayerController.initialFocalPoint = Offset.zero, + ); } }, onPointerSignal: (event) {