diff --git a/lib/logic/display.dart b/lib/logic/display.dart index 90ba4e9f..caa12710 100644 --- a/lib/logic/display.dart +++ b/lib/logic/display.dart @@ -107,10 +107,10 @@ class DisplayManager extends ChangeNotifier { List _servers = []; StreamController _serverStartedCtrl = StreamController(); - Stream get serverStarted => _serverStartedCtrl.stream; + Stream get serverStarted => _serverStartedCtrl.stream.asBroadcastStream(); StreamController _serverStoppedCtrl = StreamController(); - Stream get serverStopped => _serverStoppedCtrl.stream; + Stream get serverStopped => _serverStoppedCtrl.stream.asBroadcastStream(); DisplayServer? find(String name) { for (final server in _servers) { @@ -144,10 +144,10 @@ class DisplayServer extends ChangeNotifier { UnmodifiableListView get toplevels => UnmodifiableListView(_toplevels); StreamController _toplevelAddedCtrl = StreamController(); - Stream get toplevelAdded => _toplevelAddedCtrl.stream; + Stream get toplevelAdded => _toplevelAddedCtrl.stream.asBroadcastStream(); StreamController _toplevelRemovedCtrl = StreamController(); - Stream get toplevelRemoved => _toplevelRemovedCtrl.stream; + Stream get toplevelRemoved => _toplevelRemovedCtrl.stream.asBroadcastStream(); Future stop() async { await DisplayManager.channel.invokeMethod('stop', name); @@ -213,7 +213,7 @@ class DisplayServerToplevel extends ChangeNotifier { final int id; StreamController _notifyCtrl = StreamController(); - Stream get notify => _notifyCtrl.stream; + Stream get notify => _notifyCtrl.stream.asBroadcastStream(); StreamController _reqCtrl = StreamController(); Stream get req => _reqCtrl.stream; diff --git a/lib/views/desktop.dart b/lib/views/desktop.dart index 125c1e06..57359e4f 100644 --- a/lib/views/desktop.dart +++ b/lib/views/desktop.dart @@ -102,8 +102,8 @@ class _DesktopViewState extends State { } @override - Widget build(BuildContext context) => - SystemLayout( + Widget build(BuildContext context) { + Widget value = SystemLayout( key: _key, userMode: true, userName: widget.userName, @@ -124,4 +124,13 @@ class _DesktopViewState extends State { bottomNavigationBar: Breakpoints.small.isActive(context) ? SystemNavbar() : null, ); + + if (_displayServer != null) { + value = ChangeNotifierProvider.value( + value: _displayServer!, + child: value, + ); + } + return value; + } } diff --git a/lib/widgets/user_drawer.dart b/lib/widgets/user_drawer.dart index b14d92b3..72f3606f 100644 --- a/lib/widgets/user_drawer.dart +++ b/lib/widgets/user_drawer.dart @@ -1,10 +1,19 @@ import 'package:libtokyo_flutter/libtokyo.dart' hide ColorScheme; import 'package:libtokyo/libtokyo.dart' hide TokyoApp, Scaffold; +import 'package:provider/provider.dart'; + +import '../logic/display.dart'; class UserDrawer extends StatelessWidget { - const UserDrawer({ super.key }); + const UserDrawer({ + super.key, + }); @override - Widget build(BuildContext context) => - ListView(); + Widget build(BuildContext context) { + print(context.watch()); + return ListView( + children: [], + ); + } }