mouse back

Closes #1317

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-09-28 14:59:34 +08:00
parent 1e2618a33f
commit 09920f9fb5
2 changed files with 36 additions and 1 deletions

View File

@@ -0,0 +1,27 @@
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
class MouseBackDetector extends StatelessWidget {
const MouseBackDetector({
super.key,
required this.onTapDown,
required this.child,
});
final Widget child;
final VoidCallback onTapDown;
@override
Widget build(BuildContext context) {
return Listener(
onPointerDown: (event) {
if (event.buttons == kBackMouseButton) {
onTapDown();
}
},
behavior: HitTestBehavior.translucent,
child: child,
);
}
}

View File

@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:PiliPlus/build_config.dart'; import 'package:PiliPlus/build_config.dart';
import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/custom_toast.dart'; import 'package:PiliPlus/common/widgets/custom_toast.dart';
import 'package:PiliPlus/common/widgets/mouse_back.dart';
import 'package:PiliPlus/http/init.dart'; import 'package:PiliPlus/http/init.dart';
import 'package:PiliPlus/models/common/theme/theme_color_type.dart'; import 'package:PiliPlus/models/common/theme/theme_color_type.dart';
import 'package:PiliPlus/router/app_pages.dart'; import 'package:PiliPlus/router/app_pages.dart';
@@ -248,12 +249,19 @@ class MyApp extends StatelessWidget {
toastBuilder: (String msg) => CustomToast(msg: msg), toastBuilder: (String msg) => CustomToast(msg: msg),
loadingBuilder: (msg) => LoadingWidget(msg: msg), loadingBuilder: (msg) => LoadingWidget(msg: msg),
builder: (context, child) { builder: (context, child) {
return MediaQuery( child = MediaQuery(
data: MediaQuery.of(context).copyWith( data: MediaQuery.of(context).copyWith(
textScaler: TextScaler.linear(Pref.defaultTextScale), textScaler: TextScaler.linear(Pref.defaultTextScale),
), ),
child: child!, child: child!,
); );
if (Utils.isDesktop) {
return MouseBackDetector(
onTapDown: Get.back,
child: child,
);
}
return child;
}, },
), ),
navigatorObservers: [ navigatorObservers: [