global escape

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-10-04 18:19:02 +08:00
parent 2aa9b46433
commit aa356b5376
2 changed files with 37 additions and 41 deletions

View File

@@ -264,38 +264,46 @@ class MyApp extends StatelessWidget {
child: child!,
);
if (Utils.isDesktop) {
return MouseBackDetector(
onTapDown: () {
if (SmartDialog.checkExist()) {
SmartDialog.dismiss();
return;
}
if (Get.isDialogOpen ?? Get.isBottomSheetOpen ?? false) {
Get.back();
return;
}
final plCtr = PlPlayerController.instance;
if (plCtr != null) {
if (plCtr.isFullScreen.value == true) {
plCtr
..triggerFullScreen(status: false)
..controlsLock.value = false;
return;
}
if (plCtr.isDesktopPip) {
plCtr.exitDesktopPip().whenComplete(
() => plCtr.initialFocalPoint = Offset.zero,
);
return;
}
}
void onBack() {
if (SmartDialog.checkExist()) {
SmartDialog.dismiss();
return;
}
if (Get.isDialogOpen ?? Get.isBottomSheetOpen ?? false) {
Get.back();
return;
}
final plCtr = PlPlayerController.instance;
if (plCtr != null) {
if (plCtr.isFullScreen.value == true) {
plCtr
..triggerFullScreen(status: false)
..controlsLock.value = false;
return;
}
if (plCtr.isDesktopPip) {
plCtr.exitDesktopPip().whenComplete(
() => plCtr.initialFocalPoint = Offset.zero,
);
return;
}
}
Get.back();
}
return Shortcuts(
shortcuts: {
LogicalKeySet(LogicalKeyboardKey.escape):
VoidCallbackIntent(onBack),
},
child: child,
child: MouseBackDetector(
onTapDown: onBack,
child: child,
),
);
}
return child;

View File

@@ -163,18 +163,6 @@ class PlayerFocus extends StatelessWidget {
..controlsLock.value = false;
return true;
case LogicalKeyboardKey.escape:
if (plPlayerController.controlsLock.value) {
plPlayerController.onLockControl(false);
} else if (plPlayerController.isDesktopPip) {
plPlayerController.exitDesktopPip();
} else if (isFullScreen) {
plPlayerController.triggerFullScreen(status: false);
} else {
Get.back();
}
return true;
case LogicalKeyboardKey.keyD:
if (plPlayerController.isLive) {
final newVal = !plPlayerController.enableShowLiveDanmaku.value;