Don't trigger a change event for the initial content of the clipboard (#1321)
This commit is contained in:
parent
77b7bdb4ce
commit
97bb05147e
@ -32,6 +32,7 @@ class ClipboardMonitor extends EventDispatcher {
|
|||||||
// The token below is used as a unique identifier to ensure that a new clipboard monitor
|
// The token below is used as a unique identifier to ensure that a new clipboard monitor
|
||||||
// hasn't been started during the await call. The check below the await call
|
// hasn't been started during the await call. The check below the await call
|
||||||
// will exit early if the reference has changed.
|
// will exit early if the reference has changed.
|
||||||
|
let canChange = false;
|
||||||
const token = {};
|
const token = {};
|
||||||
const intervalCallback = async () => {
|
const intervalCallback = async () => {
|
||||||
this._timerId = null;
|
this._timerId = null;
|
||||||
@ -50,11 +51,12 @@ class ClipboardMonitor extends EventDispatcher {
|
|||||||
text !== this._previousText
|
text !== this._previousText
|
||||||
) {
|
) {
|
||||||
this._previousText = text;
|
this._previousText = text;
|
||||||
if (this._japaneseUtil.isStringPartiallyJapanese(text)) {
|
if (canChange && this._japaneseUtil.isStringPartiallyJapanese(text)) {
|
||||||
this.trigger('change', {text});
|
this.trigger('change', {text});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
canChange = true;
|
||||||
this._timerId = setTimeout(intervalCallback, this._interval);
|
this._timerId = setTimeout(intervalCallback, this._interval);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -65,6 +67,7 @@ class ClipboardMonitor extends EventDispatcher {
|
|||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
this._timerToken = null;
|
this._timerToken = null;
|
||||||
|
this._previousText = null;
|
||||||
if (this._timerId !== null) {
|
if (this._timerId !== null) {
|
||||||
clearTimeout(this._timerId);
|
clearTimeout(this._timerId);
|
||||||
this._timerId = null;
|
this._timerId = null;
|
||||||
|
Loading…
Reference in New Issue
Block a user