|
|
|
@ -32,6 +32,13 @@ class QuillController extends ChangeNotifier { |
|
|
|
|
Style toggledStyle = Style(); |
|
|
|
|
bool ignoreFocusOnTextChange = false; |
|
|
|
|
|
|
|
|
|
/// Controls whether this [QuillController] instance has already been disposed |
|
|
|
|
/// of |
|
|
|
|
/// |
|
|
|
|
/// This is a safe approach to make sure that listeners don't crash when |
|
|
|
|
/// adding, removing or listeners to this instance. |
|
|
|
|
bool _isDisposed = false; |
|
|
|
|
|
|
|
|
|
// item1: Document state before [change]. |
|
|
|
|
// |
|
|
|
|
// item2: Change delta applied to the document. |
|
|
|
@ -183,9 +190,31 @@ class QuillController extends ChangeNotifier { |
|
|
|
|
notifyListeners(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
void addListener(VoidCallback listener) { |
|
|
|
|
// By using `_isDisposed`, make sure that `addListener` won't be called on a |
|
|
|
|
// disposed `ChangeListener` |
|
|
|
|
if (!_isDisposed) { |
|
|
|
|
super.addListener(listener); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
void removeListener(VoidCallback listener) { |
|
|
|
|
// By using `_isDisposed`, make sure that `removeListener` won't be called |
|
|
|
|
// on a disposed `ChangeListener` |
|
|
|
|
if (!_isDisposed) { |
|
|
|
|
super.removeListener(listener); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
void dispose() { |
|
|
|
|
document.close(); |
|
|
|
|
if (!_isDisposed) { |
|
|
|
|
document.close(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_isDisposed = true; |
|
|
|
|
super.dispose(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|