feat: exit tray item
This commit is contained in:
@@ -3,6 +3,7 @@ import 'dart:io';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
import 'package:winui_n2n/edge_state.dart';
|
||||
import 'package:winui_n2n/globals.dart';
|
||||
import 'package:winui_n2n/home_page.dart';
|
||||
import 'package:winui_n2n/shared_pref_singleton.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
@@ -32,6 +33,7 @@ class _ApplicationExitControlState extends State<ApplicationExitControl> {
|
||||
}
|
||||
|
||||
Future<AppExitResponse> _handleExitRequest() async {
|
||||
if (!forceExit) {
|
||||
if (SharedPrefSingleton().minimizeOnQuit == null) {
|
||||
final exitApp = await showDialog<bool?>(
|
||||
context: context,
|
||||
@@ -110,6 +112,7 @@ class _ApplicationExitControlState extends State<ApplicationExitControl> {
|
||||
return AppExitResponse.cancel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Uninstall tap device before exit
|
||||
final findTapResult = await Process.run(
|
||||
|
@@ -2,3 +2,5 @@ import 'package:flutter/material.dart';
|
||||
|
||||
final GlobalKey<ScaffoldMessengerState> snackbarKey =
|
||||
GlobalKey<ScaffoldMessengerState>();
|
||||
|
||||
bool forceExit = false;
|
||||
|
@@ -1,7 +1,11 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
import 'package:winui_n2n/control_page.dart';
|
||||
import 'package:winui_n2n/about_page.dart';
|
||||
import 'package:winui_n2n/globals.dart';
|
||||
import 'package:winui_n2n/logger_page.dart';
|
||||
import 'package:winui_n2n/main.dart';
|
||||
import 'package:winui_n2n/setting_page.dart';
|
||||
@@ -57,6 +61,14 @@ class _HomePageState extends State<HomePage> with TrayListener {
|
||||
windowManager.show();
|
||||
},
|
||||
),
|
||||
MenuItem(
|
||||
key: 'exit_app',
|
||||
label: AppLocalizations.of(context)!.exit,
|
||||
onClick: (menuItem) {
|
||||
forceExit = true;
|
||||
ServicesBinding.instance.exitApplication(AppExitType.required);
|
||||
},
|
||||
)
|
||||
],
|
||||
);
|
||||
trayManager.setContextMenu(menu);
|
||||
|
Reference in New Issue
Block a user