$GTK_IM_MODULE ignored after upgrade
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GTK+ |
Expired
|
Medium
|
|||
gtk+3.0 (Ubuntu) |
Triaged
|
Low
|
Unassigned |
Bug Description
After upgrade trusty → xenial, Compose key stopped producing configured through ~/.XCompose characters for GTK3 only apps. To be sure that its the GTK problem, I created a simple GTK3 window with textbox, launched it like:
$ GTK_IM_MODULE=xim XMODIFIERS=@im=none ./a
and the textbox produces wrong characters for Compose key. (the variables are actually set globally, I wrote them here just for clarity).
XCompose works fine for all other toolkit's apps, including GTK2 and Qt ones.
1) The release of Ubuntu you are using, via 'lsb_release -rd' or System -> About Ubuntu
$ lsb_release -rd
Description: Ubuntu 16.04 LTS
Release: 16.04
2) The version of the package you are using, via 'apt-cache policy pkgname' or by checking in Software Center
$ apt-cache policy libgtk-3-0
libgtk-3-0:
Installed: 3.18.9-1ubuntu3
Candidate: 3.18.9-1ubuntu3
Version table:
*** 3.18.9-1ubuntu3 500
500 http://
100 /var/lib/
3) What you expected to happen
«Compose + - + space» would produce «— » in GTK3 apps.
4) What happened instead
«Compose + - + space» producing «~» in GTK3 apps.
Changed in gtk+3.0 (Ubuntu): | |
status: | New → Triaged |
Changed in gtk: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
Changed in gtk: | |
status: | Confirmed → Incomplete |
Changed in gtk: | |
status: | Incomplete → Confirmed |
Changed in gtk: | |
status: | Confirmed → Expired |
Okay, this is definitely GTK3 bug. I tried to debug GTK3, and found that in gtkimmodule.c it tries to lookup "xim" in some «contexts_hash»
found = g_hash_ table_lookup_ extended (contexts_hash, *immodules_list,
(gpointer *) &context_id, NULL);
It fails, and a bit later in the line
return context_id ? context_id : SIMPLE_ID;
it returns "gtk-im- context- simple" .