Reproduction steps
Reproduction steps
A. Home / End
- Click the message field.
- Insert a custom emoji from the emoji picker as the first thing on the line.
- Type "hello" after it. The caret is now at the end of the line.
- Press Home.
- Type a letter.
- Clear the field. Type "hello", then insert a custom emoji at the end of the line.
- Click between "he" and "llo", press End, then type a letter.
- Click the message field and type "hello".
- Press Shift+Enter to start a second line.
- Insert a custom emoji. It is now the first thing on line 2, with the caret right after it.
- Press Left once.
Expected behaviour
A. Home puts the caret before the emoji at the start of the line. End puts it after the emoji at the end of the line. Typing works in both cases.
B. Left moves the caret from just after the emoji to just before it, on line 2:
hello
E| -> |E
Actual behaviour
A. After Home (step 4) or End (step 7), the caret disappears and typing does nothing.
B. The caret jumps to line 1 instead of stopping before the emoji on line 2:
hello hello|
E| -> E
[Add: after pressing Left, does a typed letter go on line 1 or before the emoji? Does Right arrow do the same thing the other way?]
Build information
Stable Desktop 2026.1018.223338, Web 2026.1018.223338, Electron 44.4.1, Chrome 152.0.7977.78, Node 24.21.0, Locale en-US
As for the Platform I only tested on Windows, Desktop app, perhaps it applies to other OS's too though.
Platform
Windows
Evidence
Reproduced with custom emoji. Tested with a standard Unicode emoji too: not reproduced
Possibly related: the composer may give the caret two positions at the emoji's edge (end of the previous line vs. start of the emoji's line), and the browser draws it in the wrong one or in no visible spot.
Comments
No comments yet.