flutter: Platform now tells the overlay about new floating windows
This commit is contained in:
@@ -10,11 +10,14 @@
|
||||
*/
|
||||
|
||||
import 'package:KDDockWidgets/View_flutter.dart';
|
||||
import 'package:KDDockWidgets/WindowOverlayWidget.dart';
|
||||
import 'package:KDDockWidgetsBindings/Bindings.dart' as KDDockWidgetBindings;
|
||||
|
||||
import 'ViewFactory_flutter.dart';
|
||||
|
||||
class Platform_flutter extends KDDockWidgetBindings.Platform_flutter {
|
||||
late final WindowOverlayWidget windowOverlayWidget;
|
||||
|
||||
@override
|
||||
String name() {
|
||||
return "flutter";
|
||||
@@ -41,12 +44,24 @@ class Platform_flutter extends KDDockWidgetBindings.Platform_flutter {
|
||||
}
|
||||
|
||||
@override
|
||||
onFloatingWindowCreated(KDDockWidgetBindings.FloatingWindow? fw) {}
|
||||
onFloatingWindowDestroyed(KDDockWidgetBindings.FloatingWindow? fw) {}
|
||||
onFloatingWindowCreated(KDDockWidgetBindings.FloatingWindow? fw) {
|
||||
rebuildWindowOverlay();
|
||||
}
|
||||
|
||||
@override
|
||||
onFloatingWindowDestroyed(KDDockWidgetBindings.FloatingWindow? fw) {
|
||||
rebuildWindowOverlay();
|
||||
}
|
||||
|
||||
void rebuildWindowOverlay() {
|
||||
final state = WindowOverlayWidget.globalKey().currentState;
|
||||
if (state != null) {
|
||||
state.onFloatingWindowCountChanged();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dumpManagedBacktrace() {
|
||||
print("Printing!");
|
||||
print(StackTrace.current);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,13 @@ import 'package:flutter/widgets.dart';
|
||||
/// Since Flutter doesn't support real OS level multi-windows we need
|
||||
/// to draw the floating windows into an overlay
|
||||
class WindowOverlayWidget extends StatefulWidget {
|
||||
// We only have one overlay per application
|
||||
static GlobalObjectKey<WindowOverlayWidgetState> globalKey() {
|
||||
return GlobalObjectKey<WindowOverlayWidgetState>("windowOverlayState");
|
||||
}
|
||||
|
||||
WindowOverlayWidget() : super(key: globalKey());
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() {
|
||||
return WindowOverlayWidgetState();
|
||||
@@ -27,4 +34,8 @@ class WindowOverlayWidgetState extends State<WindowOverlayWidget> {
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children: []);
|
||||
}
|
||||
|
||||
onFloatingWindowCountChanged() {
|
||||
print("onFloatingWindowCountChanged!");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user