feat: Add desktop scaling and fix linux postinst (#1800)

* fix: resolve Linux window close handler to prevent app hang

- Add delete-event callback that properly quits the application when window is closed

* feat: Add desktop scaling and fix linux postinst

- Implement desktop interface scaling in main.dart using FittedBox.
- Add desktop scaling setting UI.
- Add desktopScale to storage preference.
- Fix typos and logic in Linux postinst script.
- Update piliplus.desktop with StartupWMClass.

* update

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Signed-off-by: Shao Guohao <shao.gh.98@gmail.com>
Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
s
2026-01-10 10:03:51 +08:00
committed by GitHub
parent 069cf555ea
commit 28b69a06fa
9 changed files with 195 additions and 15 deletions

View File

@@ -0,0 +1,36 @@
import 'package:flutter/material.dart';
class StatefulBuilder extends StatefulWidget {
const StatefulBuilder({
super.key,
this.onInit,
this.onDispose,
required this.builder,
});
final VoidCallback? onInit;
final VoidCallback? onDispose;
final StatefulWidgetBuilder builder;
@override
State<StatefulBuilder> createState() => _StatefulBuilderState();
}
class _StatefulBuilderState extends State<StatefulBuilder> {
@override
void initState() {
super.initState();
widget.onInit?.call();
}
@override
void dispose() {
widget.onDispose?.call();
super.dispose();
}
@override
Widget build(BuildContext context) => widget.builder(context, setState);
}