Comment 0 for bug 2051371

Revision history for this message
Eberhard Beilharz (ermshiperete) wrote :

If I have `ខែ្` (U+1781 U+17c2 U+17d2) in the terminal and press backspace, the first backspace deletes U+17c2 U+17d2 so that I'm left with `ខ` (U+1781). Instead it should only delete the last codepoint, U+17d2.

If I have `ខែ` (U+1781 U+17c2) a backspace deletes only U+17c2, similarly if I have `ខ្` (U+1781 U+17d2) where the backspace deletes U+17d2.

Further investigations show that backspace often deletes the entire cluster, i.e. diacritic(s) plus the base character, for example with `x̣́` (U+0078 U+0301 U+0323) where a backspace deletes all three codepoints.

gnome-terminal should only delete the last codepoint [1].

A real live example where this behavior is problematic is when using ibus-keyman with the Khmer Angkor keyboard. When typing <kbd>x</kbd><kbd>E</kbd><kbd>j</kbd><kbd>m</kbd><kbd>r</kbd> the expected output is `ខ្មែរ` (U+1781 U+17d2 U+1798 U+17c2 U+179a). Keyman does some reordering while typing to put the codepoints in a standardized order. Because gnome-terminal lacks support for surrounding text, the codepoints have to be deleted by emitting several backspace keypresses. Because of the deletion of the cluster the result in gnome-terminal is `មែរ` (U+1798 U+17c2 U+179a).

[1] https://github.com/keymanapp/keyman/wiki/Backspace-and-cluster-deletion

ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: gnome-terminal 3.44.0-1ubuntu1 [modified: usr/libexec/gnome-terminal-server]
ProcVersionSignature: Ubuntu 6.5.0-14.14~22.04.1-generic 6.5.3
Uname: Linux 6.5.0-14-generic x86_64
ApportVersion: 2.20.11-0ubuntu82.5
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Fri Jan 26 12:21:42 2024
InstallationDate: Installed on 2022-04-12 (653 days ago)
InstallationMedia: Ubuntu 22.04 LTS "Jammy Jellyfish" - Beta amd64 (20220329.1)
SourcePackage: gnome-terminal
UpgradeStatus: No upgrade log present (probably fresh install)