mirror of
https://github.com/fastmail/Squire.git
synced 2025-02-23 15:26:07 -05:00
On paste, ignore image if text/html present.
If you copy a portion of text from word, it includes an image version of the text as well as an HTML version. On paste, we now ignore the image representation on the clipboard if an HTML representation is present, so that the text pastes as expected, rather than as an image.
This commit is contained in:
parent
946afc9a17
commit
dbda1fa4ed
3 changed files with 53 additions and 35 deletions
|
@ -2452,27 +2452,36 @@ addEventListener( isIE ? 'beforepaste' : 'paste', function ( event ) {
|
||||||
var clipboardData = event.clipboardData,
|
var clipboardData = event.clipboardData,
|
||||||
items = clipboardData && clipboardData.items,
|
items = clipboardData && clipboardData.items,
|
||||||
fireDrop = false,
|
fireDrop = false,
|
||||||
l;
|
hasImage = false,
|
||||||
|
l, type;
|
||||||
if ( items ) {
|
if ( items ) {
|
||||||
l = items.length;
|
l = items.length;
|
||||||
while ( l-- ) {
|
while ( l-- ) {
|
||||||
if ( /^image\/.*/.test( items[l].type ) ) {
|
type = items[l].type;
|
||||||
event.preventDefault();
|
if ( type === 'text/html' ) {
|
||||||
fireEvent( 'dragover', {
|
hasImage = false;
|
||||||
dataTransfer: clipboardData,
|
break;
|
||||||
/*jshint loopfunc: true */
|
|
||||||
preventDefault: function () {
|
|
||||||
fireDrop = true;
|
|
||||||
}
|
|
||||||
/*jshint loopfunc: false */
|
|
||||||
});
|
|
||||||
if ( fireDrop ) {
|
|
||||||
fireEvent( 'drop', {
|
|
||||||
dataTransfer: clipboardData
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
if ( /^image\/.*/.test( type ) ) {
|
||||||
|
hasImage = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( hasImage ) {
|
||||||
|
event.preventDefault();
|
||||||
|
fireEvent( 'dragover', {
|
||||||
|
dataTransfer: clipboardData,
|
||||||
|
/*jshint loopfunc: true */
|
||||||
|
preventDefault: function () {
|
||||||
|
fireDrop = true;
|
||||||
|
}
|
||||||
|
/*jshint loopfunc: false */
|
||||||
|
});
|
||||||
|
if ( fireDrop ) {
|
||||||
|
fireEvent( 'drop', {
|
||||||
|
dataTransfer: clipboardData
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1368,27 +1368,36 @@ addEventListener( isIE ? 'beforepaste' : 'paste', function ( event ) {
|
||||||
var clipboardData = event.clipboardData,
|
var clipboardData = event.clipboardData,
|
||||||
items = clipboardData && clipboardData.items,
|
items = clipboardData && clipboardData.items,
|
||||||
fireDrop = false,
|
fireDrop = false,
|
||||||
l;
|
hasImage = false,
|
||||||
|
l, type;
|
||||||
if ( items ) {
|
if ( items ) {
|
||||||
l = items.length;
|
l = items.length;
|
||||||
while ( l-- ) {
|
while ( l-- ) {
|
||||||
if ( /^image\/.*/.test( items[l].type ) ) {
|
type = items[l].type;
|
||||||
event.preventDefault();
|
if ( type === 'text/html' ) {
|
||||||
fireEvent( 'dragover', {
|
hasImage = false;
|
||||||
dataTransfer: clipboardData,
|
break;
|
||||||
/*jshint loopfunc: true */
|
|
||||||
preventDefault: function () {
|
|
||||||
fireDrop = true;
|
|
||||||
}
|
|
||||||
/*jshint loopfunc: false */
|
|
||||||
});
|
|
||||||
if ( fireDrop ) {
|
|
||||||
fireEvent( 'drop', {
|
|
||||||
dataTransfer: clipboardData
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
if ( /^image\/.*/.test( type ) ) {
|
||||||
|
hasImage = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( hasImage ) {
|
||||||
|
event.preventDefault();
|
||||||
|
fireEvent( 'dragover', {
|
||||||
|
dataTransfer: clipboardData,
|
||||||
|
/*jshint loopfunc: true */
|
||||||
|
preventDefault: function () {
|
||||||
|
fireDrop = true;
|
||||||
|
}
|
||||||
|
/*jshint loopfunc: false */
|
||||||
|
});
|
||||||
|
if ( fireDrop ) {
|
||||||
|
fireEvent( 'drop', {
|
||||||
|
dataTransfer: clipboardData
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue