Initial commit: RustDesk 1.4.7 macOS desktop port
- Filled empty libs/hbb_common/ submodule (cloned from rustdesk/hbb_common) - Patched Flutter 3.44 / Dart 3.12 compatibility: * flutter/lib/generated_bridge.dart: asTypedList with cast<>, DartPort=Int64 * flutter/lib/common.dart: DialogTheme->DialogThemeData, TabBarTheme->TabBarThemeData * flutter/pubspec.yaml: extended_text 14.0.0->15.0.2, google_fonts override 5.0.0 * flutter/macos/Runner/Configs/Release.xcconfig: EXCLUDED_ARCHS=x86_64 - Build verified: cargo check + cargo build --features flutter + cargo build --release --features flutter - Verified flutter build macos --debug and --release both produce working .app - Verified .dmg installer (27MB arm64) created via hdiutil - Build deps: Xcode 26.5, CocoaPods 1.16.2, Flutter 3.44, VCPKG arm64-osx
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hbb/common.dart';
|
||||
import 'package:flutter_hbb/main.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class RefreshWrapper extends StatefulWidget {
|
||||
final Widget Function(BuildContext context) builder;
|
||||
|
||||
const RefreshWrapper({super.key, required this.builder});
|
||||
|
||||
@override
|
||||
State<RefreshWrapper> createState() => RefreshWrapperState();
|
||||
|
||||
static RefreshWrapperState? of(BuildContext context) {
|
||||
final state = context.findAncestorStateOfType<RefreshWrapperState>();
|
||||
if (state == null) {
|
||||
debugPrint(
|
||||
"RefreshWrapperState not exists in this context, perhaps RefreshWrapper is not exists?");
|
||||
}
|
||||
return state;
|
||||
}
|
||||
}
|
||||
|
||||
class RefreshWrapperState extends State<RefreshWrapper> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return widget.builder(context);
|
||||
}
|
||||
|
||||
rebuild() {
|
||||
debugPrint("=====Global State Rebuild (win-${kWindowId ?? 'main'})=====");
|
||||
if (Get.context != null) {
|
||||
(context as Element).visitChildren(_rebuildElement);
|
||||
}
|
||||
// Synchronize the window theme of the system.
|
||||
updateSystemWindowTheme();
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
/// set root tree dirty to trigger global rebuild
|
||||
void _rebuildElement(Element el) {
|
||||
el.markNeedsBuild();
|
||||
el.visitChildren(_rebuildElement);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user