mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-25 01:19:45 +00:00
We currently delete a single code unit. If the user presses backspace on a multi code point emoji, they are going to expect the entire emoji to be removed. This now matches the behavior of Chrome and Firefox.
37 lines
1.4 KiB
HTML
37 lines
1.4 KiB
HTML
<!DOCTYPE html>
|
||
<script src="../include.js"></script>
|
||
<div id="a" contenteditable="true">foobar</div>
|
||
<div id="b" contenteditable="true">a </div>
|
||
<div id="c" contenteditable="true">a b</div>
|
||
<div id="d" contenteditable="true">a b</div>
|
||
<div id="e" contenteditable="true">a b</div>
|
||
<div id="f" contenteditable="true">a b</div>
|
||
<div id="g" contenteditable="true"> b</div>
|
||
<div id="h" contenteditable="true">foo👩🏼❤️👨🏻bar</div>
|
||
<script>
|
||
test(() => {
|
||
const testForwardDelete = function(divId, position) {
|
||
println(`--- ${divId} ---`);
|
||
const divElm = document.querySelector(`div#${divId}`);
|
||
println(`Before: ${divElm.innerHTML}`);
|
||
|
||
// Place cursor
|
||
const node = divElm.childNodes[0];
|
||
getSelection().setBaseAndExtent(node, position, node, position);
|
||
|
||
// Press delete
|
||
document.execCommand('forwardDelete');
|
||
|
||
println(`After: ${divElm.innerHTML}`);
|
||
};
|
||
|
||
testForwardDelete('a', 3);
|
||
testForwardDelete('b', 1);
|
||
testForwardDelete('c', 1);
|
||
testForwardDelete('d', 1);
|
||
testForwardDelete('e', 1);
|
||
testForwardDelete('f', 1);
|
||
testForwardDelete('g', 0);
|
||
testForwardDelete('h', 3);
|
||
});
|
||
</script>
|