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 324021 - Esperanto dead keys don't work in "Cedilla" and "Default" input methods
Esperanto dead keys don't work in "Cedilla" and "Default" input methods
Status: RESOLVED DUPLICATE of bug 321896
Product: gtk+
Classification: Platform
Component: Input Methods
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
AP4
Depends on:
Blocks:
 
 
Reported: 2005-12-13 21:58 UTC by Henrique
Modified: 2008-11-02 13:49 UTC
See Also:
GNOME target: ---
GNOME version: 2.11/2.12



Description Henrique 2005-12-13 21:58:57 UTC
Version details: gnome installed from Ubuntu 'breezy'

While using the "cedilla" input method, letters composed like ^ + c, ^ + H, etc.
don't work and emit an error beep. Using the "X input method", however, works
fine. In applications like firefox, it's not possible to change the input method.

The relevant key sequences are:
^ + c = ĉ
^ + C = Ĉ
^ + g = ĝ
^ + G = Ĝ
^ + h = ĥ
^ + H = Ĥ
^ + j = ĵ
^ + J = Ĵ
^ + s = ŝ
^ + S = Ŝ
˘ + u = ŭ
˘ + U = Ŭ
Comment 1 Henrique 2005-12-17 17:37:48 UTC
changed 'product' field to 'gedit'
Comment 2 Paolo Borelli 2005-12-19 08:31:52 UTC
does the problem occur also with other programs using GtkTextView? for instance with gtk-demo (if you have it installed)
Comment 3 Henrique 2005-12-19 15:34:15 UTC
The problem happens with programs like gedit, gterm, firefox, nautilus, even in the 'open file' dialog. AFAICT, the problem is on the input method.
Comment 4 Paolo Borelli 2005-12-19 15:37:30 UTC
Ok, thanks for testing. I am reassgning this to gtk+.

(I am not sure if gtk is the right component, but at least they should have a clue on which is the component to reassign to :)
Comment 5 Henrique 2005-12-19 15:55:40 UTC
I've just realized that those dead keys don't work in the 'default' input method.
Comment 6 Alexandre Muniz 2005-12-23 06:32:48 UTC
I've added compose sequences for these and many other characters to Latin Plus, which is a part of the gtk-im-extra project.

With a little work you could seperate the entries for those characters out from the rest and make a patch for gtkimcontextsimple.c that would have a better chance of getting accepted than my mammoth additions. Note that it's important that the rows in the gtk_compose_seqs table be in keysym order (The order they are in in gdkkeysyms.h.)
Comment 7 Alexandre Muniz 2005-12-23 06:35:34 UTC
(In reply to comment #6)
> I've added compose sequences for these and many other characters to Latin Plus,
> which is a part of the gtk-im-extra project.

Oops, I meant to give the URL for that: http://gtk-im-extra.sourceforge.net/
Comment 8 Henrique 2005-12-30 19:55:31 UTC
(In reply to comment #6)
> I've added compose sequences for these and many other characters to Latin Plus,
> which is a part of the gtk-im-extra project.
> 
> With a little work you could seperate the entries for those characters out from
> the rest and make a patch for gtkimcontextsimple.c that would have a better
> chance of getting accepted than my mammoth additions. Note that it's important
> that the rows in the gtk_compose_seqs table be in keysym order (The order they
> are in in gdkkeysyms.h.)
> 


 Hello,

 Thanks for the hint. Unfortunately, I'm no gtk hacker. I'm a user. It would be nice if the gtk team said something about this.
Comment 9 Calum Benson 2006-04-26 17:13:05 UTC
Apologies for spam... ensuring Sun a11y folks are cc'ed on all current accessibility bugs.
Comment 10 Calum Benson 2006-04-26 17:39:59 UTC
Apologies for spam... marking as AP4 to reflect accessibility impact.
Comment 11 Simos Xenitellis 2008-01-31 02:11:49 UTC
Currently, gtkimcontextsimple.c contains the following compose sequences with dead_cedilla,

  GDK_dead_cedilla,	GDK_space,	0,	0,	0,	0x00B8,	/* CEDILLA */
  GDK_dead_cedilla,	GDK_comma,	0,	0,	0,	0x00B8,	/* CEDILLA */
  GDK_dead_cedilla,	GDK_minus,	0,	0,	0,	0x00AC,	/* NOT_SIGN */
  GDK_dead_cedilla,	GDK_C,	0,	0,	0,	0x00C7,	/* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_G,	0,	0,	0,	0x0122,	/* LATIN_CAPITAL_LETTER_G_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_K,	0,	0,	0,	0x0136,	/* LATIN_CAPITAL_LETTER_K_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_L,	0,	0,	0,	0x013B,	/* LATIN_CAPITAL_LETTER_L_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_N,	0,	0,	0,	0x0145,	/* LATIN_CAPITAL_LETTER_N_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_R,	0,	0,	0,	0x0156,	/* LATIN_CAPITAL_LETTER_R_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_S,	0,	0,	0,	0x015E,	/* LATIN_CAPITAL_LETTER_S_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_c,	0,	0,	0,	0x00E7,	/* LATIN_SMALL_LETTER_C_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_g,	0,	0,	0,	0x0123,	/* LATIN_SMALL_LETTER_G_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_k,	0,	0,	0,	0x0137,	/* LATIN_SMALL_LETTER_K_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_l,	0,	0,	0,	0x013C,	/* LATIN_SMALL_LETTER_L_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_n,	0,	0,	0,	0x0146,	/* LATIN_SMALL_LETTER_N_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_r,	0,	0,	0,	0x0157,	/* LATIN_SMALL_LETTER_R_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_s,	0,	0,	0,	0x015F,	/* LATIN_SMALL_LETTER_S_WITH_CEDILLA */
  GDK_dead_cedilla,	GDK_cedilla,	0,	0,	0,	0x00B8,	/* CEDILLA */
  GDK_dead_cedilla,	GDK_dead_cedilla,	0,	0,	0,	0x00B8,	/* CEDILLA */

To get these to work, your keyboard layout (for esperanto: 
http://webcvs.freedesktop.org/xkeyboard-config/xkeyboard-config/symbols/epo?view=markup) should use dead_cedilla. 

There is an update going on for gtkimcontextsimple.c that adds support for more compose sequences (about 70 different characters involving dead_cedilla).
Comment 12 Pupeno 2008-03-17 21:23:35 UTC
Any news whether there's any work regarding this? I'd like to be able to simply write Esperanto with Gtk+.
Thank you.
Comment 13 Henrique 2008-03-17 22:33:18 UTC
As far as gtk is concerned, Esperanto is dead. You may use this workaround:

http://hdante.blogspot.com/2007/05/kiel-oni-skribas-typing-esperanto.html
Comment 14 Simos Xenitellis 2008-03-17 23:10:02 UTC
I will try to make a wrap-up, please post constructive replies.

There is a Esperanto keyboard layout that can be enabled through the Keyboard Preferences in GNOME. You may use that keyboard layout, or you can make a new variant for your personal use. For this direction, you need to contact the xkeyboard-config project.

A new patch landed in GTK+ that adds the full support of compose sequences that one gets when using "xim" (X Input Method). With this, you can use Compose to write letters with dead_cedilla. This patch will reach distributions in the autumn. If you are the adventurous type, you can use it now, http://simos.info/blog/archives/661
Comment 15 Henrique 2008-03-17 23:20:29 UTC
Hello,

 There's no standardized Esperanto keyboard, so, in general, Esperanto should work with many other layouts (that is, there's no sense in saying, "buy a Esperanto keyboard", then reconfigure the layout).

 The correct solution is replicating xim, as it's been done in this patch (that doesn't seem to be available in gtk).

 Note that dead_cedilla is completelly irrelevant in this discussion, there's no Esperanto letter that requires it.

 Finally, I think my post was very constructive.

Comment 16 Simos Xenitellis 2008-03-17 23:46:05 UTC
(In reply to comment #15)
> Hello,
> 
>  There's no standardized Esperanto keyboard, so, in general, Esperanto should
> work with many other layouts (that is, there's no sense in saying, "buy a
> Esperanto keyboard", then reconfigure the layout).

That is fair enough. Please see below on how to use any other standard keyboard layouts to type letter+cedilla.

>  The correct solution is replicating xim, as it's been done in this patch (that
> doesn't seem to be available in gtk).

The compose sequences from XIM have been replicated recently in GTK+, as a result of the work in Bug 321896. However, there is some time before it lands in Linux distributions. It helps if people test the patch, which is described in detail in my blog post in comment #14.

>  Note that dead_cedilla is completelly irrelevant in this discussion, there's
> no Esperanto letter that requires it.

The reason why the compose sequences that you describe in comment #1 do not work is because GTK+ did not have the full list of sequences that XIM had. For example, it was missing ĥĤ. 

You can type the characters you describe in comment #1 in two ways,

a. with any keyboard layout that mentions dead_cedilla,
$ grep dead_cedilla /usr/share/X11/xkb/symbols/* | awk -F\: '{print $1}' | sort | uniq
/usr/share/X11/xkb/symbols/be
/usr/share/X11/xkb/symbols/ca
/usr/share/X11/xkb/symbols/cs
/usr/share/X11/xkb/symbols/cz
/usr/share/X11/xkb/symbols/de
/usr/share/X11/xkb/symbols/es
/usr/share/X11/xkb/symbols/fi
/usr/share/X11/xkb/symbols/fr
/usr/share/X11/xkb/symbols/hu
/usr/share/X11/xkb/symbols/ie
/usr/share/X11/xkb/symbols/it
/usr/share/X11/xkb/symbols/latam
/usr/share/X11/xkb/symbols/latin
/usr/share/X11/xkb/symbols/nl
/usr/share/X11/xkb/symbols/no
/usr/share/X11/xkb/symbols/pl
/usr/share/X11/xkb/symbols/pt
/usr/share/X11/xkb/symbols/ro
/usr/share/X11/xkb/symbols/se
/usr/share/X11/xkb/symbols/sk
/usr/share/X11/xkb/symbols/tj
/usr/share/X11/xkb/symbols/us
$ _

You have to see the layout details in Keyboard Preferences to find which key has "dead_cedilla".

b. Using the Compose key as you would with XIM.
Comment 17 Simos Xenitellis 2008-03-17 23:49:29 UTC
Considering that bug 321896 has been essentially resolved, I am marking this report as duplicate.

You can test now by following the steps in 
http://simos.info/blog/archives/661
http://blogs.gnome.org/simos/2008/03/05/testing-the-updated-im-support-in-gtk/

Here is an example of the use of dead_cedilla (in Firefox).
I happen to be using the GB English keyboard layout, and I press AltGR+' + letter,
(second column with letter with cedilla). There are 22 layouts one can choose from, to type letters with cedilla on top.

The same can also be achieved with Compose + ^ + letter (third column)

^ + c = ĉ ĉ ĉ
^ + C = Ĉ Ĉ Ĉ
^ + g = ĝ ĝ ĝ
^ + G = Ĝ Ĝ Ĝ
^ + h = ĥ ĥ ĝ
^ + H = Ĥ Ĥ Ĥ
^ + j = ĵ ĵ ĥ
^ + J = Ĵ Ĵ Ĥ
^ + s = ŝ ŝ ŝ
^ + S = Ŝ Ŝ Ŝ
˘ + u = ŭ ŭ ŭ
˘ + U = Ŭ Ŭ Ŭ      (AltGr+~+u) (Compose+U+U)

*** This bug has been marked as a duplicate of 321896 ***
Comment 18 Henrique 2008-03-18 01:09:32 UTC
The name of the "^" mark is circumflex. "Cedilla" is like this: Ç. Many layouts have dead_circumflex, but it doesn't matter, because the IM kills the relevant compositions.

Anyway, thanks for the fix.
Comment 19 Simos Xenitellis 2008-03-18 01:20:48 UTC
(In reply to comment #18)
> The name of the "^" mark is circumflex. "Cedilla" is like this: Ç. Many
> layouts have dead_circumflex, but it doesn't matter, because the IM kills the
> relevant compositions.

This is very important for me to know. My comments above should have then "dead_cedilla" replaced with "dead_circumflex". Apart from that, they still apply and one can type the characters that I showed. I actually typed them in my Firefox (modified GTK+ library).

I did a fresh search for keyboard layouts and dead_circumflex, and there are 35 layouts that include it.

> Anyway, thanks for the fix.
> 

If you feel that you can follow the steps and replace your system GTK+ with the patched version that I describe above, then Esperanto should work for you now.

If compiling is too technical, you can disable GTK+ IM until the patch makes it to the distributions and enable XIM. You can do that by adding GTK_IM_MODULE=xim in /etc/environment, and restarting. Again, with this Esperanto should work for you now.
Comment 20 Simos Xenitellis 2008-10-22 11:44:24 UTC
Henrique, could you please check again whether this has been fixed for you in the new distributions with GTK 2.14?

For example, you can try Ubuntu 8.10 Beta.
Comment 21 Henrique 2008-11-02 13:49:56 UTC
Solved in Ubuntu 8.10. 

Congratulations for the fix,