Edit history

Caret disappears on Home/End toward a custom emoji, and Left arrow from after a line-start emoji jumps the caret to the line above has not been edited, so there are no earlier versions.

Current version | Original by mangafan
Show

Caret disappears on Home/End toward a custom emoji, and Left arrow from after a line-start emoji jumps the caret to the line above

Reproduction steps

Reproduction steps A. Home / End
  1. Click the message field.
  2. Insert a custom emoji from the emoji picker as the first thing on the line.
  3. Type "hello" after it. The caret is now at the end of the line.
  4. Press Home.
  5. Type a letter.
  6. Clear the field. Type "hello", then insert a custom emoji at the end of the line.
  7. Click between "he" and "llo", press End, then type a letter.
B. Left arrow beside an emoji at the start of a line
  1. Click the message field and type "hello".
  2. Press Shift+Enter to start a second line.
  3. Insert a custom emoji. It is now the first thing on line 2, with the caret right after it.
  4. 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.