After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 666710 - Fix compose sequences disabling other sequences
Fix compose sequences disabling other sequences
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: Input Methods
3.3.x
Other All
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2011-12-22 10:46 UTC by Pander
Modified: 2018-02-10 03:26 UTC
See Also:
GNOME target: ---
GNOME version: 3.3/3.4



Description Pander 2011-12-22 10:46:01 UTC
Some compose key sequences are prefixes of other longer compose key sequences. These need to be fixed in order to enable all. Below they are discussed and proper fixed are offered.

Compose sequence ^_ results in ¯ (macron) but is preventing these compose sequences:
  ^_a
  ^_o
  ^_h
  ^_j
  ^_r
  ^_w
  ^_y
  ^_l
  ^_s
  ^_x
  ^_i
  ^_n
  ^_ʕ
  ^_ɣ
  ^_ʁ
  ^_ɻ
  ^_ɹ
  ^_ɦ
But because these five compose sequences:
  -^
  ^-
  _^
  __
also result in a macron, please remove ^_ (probably from gtk-compose-lookaside.txt) to enable the eighteen sequences listed above.

Compose sequence o' results in ó but is preventing these compose key sequences:
  o'A -> Ǻ
  o'a -> ǻ
Because *A -> Å and *a -> å the two sequences listed above should be replaced  (probably in Compose.pre) with:
  *'A -> Ǻ
  *'a -> ǻ
No other characters are "with ring above and acute" so these are complete.

Compose sequence U, results in Ų but is preventing these compose key sequences:
  U,E -> Ḝ
  U,e -> ḝ
because compose sequences b,e and b,E are already providing access to Ḝ and ḝ, please remove U,E and U,e (probably from Compose.pre)

Compose sequence "'␣ is not accessible because of the compose sequence "' Since '"␣ is doing the same as "'␣ and for "' there are less alternatives (i.e. less QWERTY alternative), please remove "'␣ (probably from Compose.pre)
̈́
Implementing these changes will remove all conflicts in compose sequences and allow the end user practically use the uniquely compose key sequences.
Comment 1 Pander 2011-12-22 11:55:04 UTC
Please, also clean up definitions that are both in Compose.pre and gtk-compose-lookaside.txt so that they appear in only on of both files. Please choose the most appropriate one.

This concerns the fooling twelve compose sequences:
  ,A -> Ą
  ,a -> ą
  -D -> Đ
  -d -> đ
  ,E -> Ę
  ,e -> ę
  ,I -> Į
  ,i -> į
  ,U -> Ų
  ,u -> ų
  OE -> Œ
  oe -> œ

Benefit of this is that no duplicate definitions exist that might cause conflicts or require more then usual complex maintenance.
Comment 2 Reinout van Schouwen 2011-12-22 17:14:27 UTC
Adding Wouter too, as he tends to find these things interesting. :)
Comment 3 Pander 2011-12-24 16:23:33 UTC
Please remove also
  "'ι -> Greek small letter iota with dialytika and tonos
and
  "'υ -> Greek small letter upsilon with dialytika and tonos
(probably from compose.pre) because
  "'
is already assigned to Combining Greek dialytika tonos U+0344. The small letter iota and upsilon with dialytika and tonos are both available under '"ι and '"υ and otherwise U+0344 is difficult to enter.
Comment 4 Pander 2011-12-24 17:47:26 UTC
And some more to remove (from probably gtk-compose-lookaside.txt):
  (A -> Ă
  (G -> Ğ
  (a -> ă
  (g -> ğ
because these are interfering with the range of (a), .., (z) and (A), .., (Z) and the characters Ă, Ğ, ă and ğ can also be constructed by many other sequences such as Ua, a( and ba for ă.

And a more complex one that needs some thought is the following. The © and ® are well known to be created with
  (c
  0C
  0c
  C0
  CO
  Co
  OC
  Oc
  c0
  cO
  co
  oC
  oc
and
  (r
  OR
  Or
  RO
  oR
  or
This is also interfering with the (a), .., (Z) ranges mentioned earlier. See:
  (b) -> ⓑ
  (B) -> Ⓑ
have the same size circle. But (c and (r result in copyright sign and registered sign with a smaller diameter circle. Note that:
  (C) -> Ⓒ
  (R) -> Ⓡ
but
  (c) is blocked by (c resulting in a smaller sign
  (r) is blocked by (r resulting in a smaller sign
Therefore I would like to propose to remove the (c and (r sequences so that (c) and (r) are accessible again and the sequences are consistent. Although many people are used to (c and (r, there are plenty of other combinations to enter © and ® as is shown above.
Comment 5 Pander 2011-12-24 18:29:18 UTC
Remaining in the encircled range, please remove compose sequence OA since encircling is done with left ( and right ), i.e. (A) -> Ⓐ. Only OC and OR have a purpose to trigger the smaller encirclements of © and ®.
Comment 6 Pander 2011-12-26 14:00:15 UTC
Please remove these compose sequences (from Compose.pre):
  "\ U+301D 〝 REVERSED DOUBLE PRIME QUOTATION MARK
  "/ U+301E 〞 DOUBLE PRIME QUOTATION MARK
because "\ and "/ which are aimed at Chinese, Japanese and Korean (CJK) are too easily used in the Latin domain where "< for left double quotation mark “ and "> for right double quotation mark ” should be used.

See also https://bugzilla.gnome.org/show_bug.cgi?id=618382 requesting alternatives for U+301D and U+301E, being respectively J"\ and J"/ (with the J referring to Japanese from the abbreviation CJK)
Comment 7 Pander 2011-12-26 14:11:26 UTC
U+301D and U+301E are also not available in most Latin fonts (and even not available in several CJK fonts).
Comment 8 Matthias Clasen 2011-12-30 04:41:42 UTC
You are pointing at a real bug, but I don't agree with your proposed fixes.
GtkIMContextSimple has a mechanism to deal with sequences that are prefixes of longer sequences, but it was broken when the compact table format was introduced.
I have committed a fix to make it working again.
Let me know if that sufficiently addresses the problems you've pointed out.
Comment 9 Pander 2012-01-06 17:23:53 UTC
Thanks for your comment. I have submitted a patch for review upstream at xorg for the 413 compose sequences defined in gtk-compose-lookaside.txt. Most of them could be added directly. However 32 sequences caused conflicts and were omitted from the patch. You can read all about it here:
  https://bugs.freedesktop.org/show_bug.cgi?id=18751#c7

For those remaining cases we can have a look on how to solve them, e.g. to keep them different from X via gtk-compose-lookaside.txt and use your fix. Do you have documentation or source code on how your mechanism works?
Comment 10 Swift Geek 2012-02-12 14:28:55 UTC
Reproduceable in 2.x series too.
Can somebody change status to confirmed?
Comment 11 Pander 2012-03-19 13:13:33 UTC
Fixed upstream, please bump and remove sequences from gtk-compose-lookaside.txt which are now available upstream. Also remove sequnces which are no longer needed as there are many alternatives upstream of more important identical sequences upstream.

See http://cgit.freedesktop.org/xorg/lib/libX11/tree/nls/en_US.UTF-8/Compose.pre and https://bugs.freedesktop.org/show_bug.cgi?id=18751

As far as I'm concerned, gtk-compose-lookaside.txt can be cleared out as much as possible, which is the actual goal of this file. Upstream patching is currently functioning properly.
Comment 12 Pander 2012-03-19 14:16:30 UTC
At least the following need to be removed to eliminate conflicts with upstream:

<Multi_key> <0> <c> 			: "©"   copyright # COPYRIGHT SIGN
<Multi_key> <0> <C> 			: "©"   copyright # COPYRIGHT SIGN
<Multi_key> <c> <0> 			: "©"   copyright # COPYRIGHT SIGN
<Multi_key> <C> <0> 			: "©"   copyright # COPYRIGHT SIGN
<Multi_key> <s> <0> 			: "§"   section # SECTION SIGN
<Multi_key> <0> <s> 			: "§"   section # SECTION SIGN
<Multi_key> <S> <0> 			: "§"   section # SECTION SIGN
<Multi_key> <0> <S> 			: "§"   section # SECTION SIGN
<Multi_key> <0> <X> 			: "¤"   currency # CURRENCY SIGN
<Multi_key> <X> <0> 			: "¤"   currency # CURRENCY SIGN
<Multi_key> <0> <x> 			: "¤"   currency # CURRENCY SIGN
<Multi_key> <x> <0> 			: "¤"   currency # CURRENCY SIGN
<Multi_key> <O> <X> 			: "¤"   currency # CURRENCY SIGN
<Multi_key> <X> <O> 			: "¤"   currency # CURRENCY SIGN
<Multi_key> <exclam> <p> 		: "¶"   paragraph # PILCROW SIGN
<Multi_key> <exclam> <P> 		: "¶"   paragraph # PILCROW SIGN
Comment 13 Pander 2012-03-20 15:42:35 UTC
I'm willing to make a patch for gtk-compose-lookaside.txt but I need someone who can sign it off and apply it. Who can help me with that?
Comment 14 Matthias Clasen 2018-02-10 03:26:59 UTC
We're moving to gitlab! As part of this move, we are closing bugs that haven't seen activity in more than 5 years. If this issue is still imporant to you and
still relevant with GTK+ 3.22 or master, please consider creating a gitlab issue
for it.