@@ -104,16 +104,15 @@ class QuillToolbarClipboardButtonState
104
104
}
105
105
// The controller didn't change, but enableClipboardPaste did.
106
106
else if (widget.clipboardAction == ClipboardAction .paste) {
107
- // Check if the clipboard monitor is active and enable it if not.
108
- if (widget.options.enableClipboardPaste == null ) {
109
- if (! (_monitor._timer? .isActive ?? false )) {
110
- _monitor.monitorClipboard (true , _listenClipboardStatus);
111
- }
112
- } else {
113
- // Otherwise check if the timer is active and disable it.
114
- if (_monitor._timer == null || _monitor._timer! .isActive) {
115
- _monitor.monitorClipboard (false , _listenClipboardStatus);
116
- }
107
+ final isTimerActive = _monitor._timer? .isActive ?? false ;
108
+
109
+ // Enable clipboard monitoring if not active and should be monitored.
110
+ if (shouldUseClipboardMonitor && ! isTimerActive) {
111
+ _monitor.monitorClipboard (true , _listenClipboardStatus);
112
+ }
113
+ // Disable clipboard monitoring if active and should not be monitored.
114
+ else if (! shouldUseClipboardMonitor && isTimerActive) {
115
+ _monitor.monitorClipboard (false , _listenClipboardStatus);
117
116
}
118
117
119
118
currentValue = currentStateValue;
@@ -122,16 +121,14 @@ class QuillToolbarClipboardButtonState
122
121
123
122
@override
124
123
void addExtraListener () {
125
- if (widget.clipboardAction == ClipboardAction .paste &&
126
- widget.options.enableClipboardPaste == null ) {
124
+ if (shouldUseClipboardMonitor) {
127
125
_monitor.monitorClipboard (true , _listenClipboardStatus);
128
126
}
129
127
}
130
128
131
129
@override
132
130
void removeExtraListener (covariant QuillToolbarClipboardButton oldWidget) {
133
- if (widget.clipboardAction == ClipboardAction .paste &&
134
- widget.options.enableClipboardPaste == null ) {
131
+ if (shouldUseClipboardMonitor) {
135
132
_monitor.monitorClipboard (false , _listenClipboardStatus);
136
133
}
137
134
}
@@ -150,6 +147,11 @@ class QuillToolbarClipboardButtonState
150
147
ClipboardAction .paste => Icons .paste_outlined,
151
148
};
152
149
150
+ bool get shouldUseClipboardMonitor {
151
+ return widget.clipboardAction == ClipboardAction .paste &&
152
+ widget.options.enableClipboardPaste == null ;
153
+ }
154
+
153
155
void _onPressed () {
154
156
switch (widget.clipboardAction) {
155
157
case ClipboardAction .cut:
0 commit comments