diff --git a/src/flutter/dart/lib/FloatingWindow_flutter.dart b/src/flutter/dart/lib/FloatingWindow_flutter.dart index 7be52ce2..0a8f2597 100644 --- a/src/flutter/dart/lib/FloatingWindow_flutter.dart +++ b/src/flutter/dart/lib/FloatingWindow_flutter.dart @@ -21,7 +21,6 @@ class FloatingWindow_flutter extends KDDockWidgetBindings.View_flutter {int windowFlags = 0}) : super(controller, type, parent, windowFlags: windowFlags) { initMixin(this, color: Colors.black12, debugName: "FloatingWindow"); - m_fillsParent = true; print("FloatingWindow_flutter CTOR"); } diff --git a/src/flutter/dart/lib/WindowWidget.dart b/src/flutter/dart/lib/WindowWidget.dart new file mode 100644 index 00000000..a6dda343 --- /dev/null +++ b/src/flutter/dart/lib/WindowWidget.dart @@ -0,0 +1,47 @@ +/* + This file is part of KDDockWidgets. + + SPDX-FileCopyrightText: 2019-2022 Klarälvdalens Datakonsult AB, a KDAB Group company + Author: Sérgio Martins + + SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only + + Contact KDAB at for commercial licensing options. +*/ + +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:KDDockWidgets/FloatingWindow_flutter.dart' as KDDW; + +/// @brief A Widget that hosts a single KDDW FloatingWindow +/// Since Flutter doesn't support real OS level multi-windows we need +/// to draw the windows ourselves +class WindowWidget extends StatefulWidget { + late final KDDW.FloatingWindow_flutter kddwFloatingWindowView; + WindowWidget(this.kddwFloatingWindowView); + + @override + State createState() { + return WindowWidgetState(kddwFloatingWindowView); + } +} + +class WindowWidgetState extends State { + late final KDDW.FloatingWindow_flutter kddwFloatingWindowView; + WindowWidgetState(this.kddwFloatingWindowView); + + @override + Widget build(BuildContext context) { + final x = kddwFloatingWindowView.x(); + final y = kddwFloatingWindowView.y(); + final width = kddwFloatingWindowView.width(); + final height = kddwFloatingWindowView.height(); + + return Positioned( + left: x.toDouble(), + top: y.toDouble(), + width: width.toDouble(), + height: height.toDouble(), + child: kddwFloatingWindowView.flutterWidget); + } +}