fix to update state of defintion button in toolbar
This commit is contained in:
parent
0bb202b9a3
commit
da64ed1506
2 changed files with 19 additions and 3 deletions
|
|
@ -1,12 +1,13 @@
|
|||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
class MessageTextSelection {
|
||||
String? selectedText;
|
||||
String messageText = "";
|
||||
final StreamController<String?> selectionStream =
|
||||
StreamController<String?>.broadcast();
|
||||
|
||||
void setMessageText(String text) {
|
||||
messageText = text;
|
||||
|
|
@ -21,7 +22,7 @@ class MessageTextSelection {
|
|||
if (BrowserContextMenu.enabled && kIsWeb) {
|
||||
BrowserContextMenu.disableContextMenu();
|
||||
}
|
||||
// selectionStream.add(selectedText);
|
||||
selectionStream.add(selectedText);
|
||||
}
|
||||
|
||||
void clearTextSelection() {
|
||||
|
|
@ -29,6 +30,6 @@ class MessageTextSelection {
|
|||
if (kIsWeb && !BrowserContextMenu.enabled) {
|
||||
BrowserContextMenu.enableContextMenu();
|
||||
}
|
||||
// selectionStream.add(selectedText);
|
||||
selectionStream.add(selectedText);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,6 +141,7 @@ class MessageToolbar extends StatefulWidget {
|
|||
class MessageToolbarState extends State<MessageToolbar> {
|
||||
Widget? child;
|
||||
MessageMode? _currentMode;
|
||||
bool hasSelectedText = false;
|
||||
late StreamSubscription<String?> _selectionStream;
|
||||
late StreamSubscription<MessageMode> _toolbarModeStream;
|
||||
|
||||
|
|
@ -233,9 +234,23 @@ class MessageToolbarState extends State<MessageToolbar> {
|
|||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
if (widget.textSelection.selectedText != null) {
|
||||
hasSelectedText = true;
|
||||
}
|
||||
|
||||
_toolbarModeStream = widget.toolbarModeStream.stream.listen((mode) {
|
||||
updateMode(mode);
|
||||
});
|
||||
|
||||
_selectionStream =
|
||||
widget.textSelection.selectionStream.stream.listen((value) {
|
||||
final bool shouldSetState =
|
||||
value != null && !hasSelectedText || value == null && hasSelectedText;
|
||||
hasSelectedText = value != null;
|
||||
if (shouldSetState) {
|
||||
setState(() {});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue