Bug 539845
| Summary: | non-altgr level-3 choosers break level-3 in GTK+ applications | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Paolo Bonzini <pbonzini> |
| Component: | gtk2 | Assignee: | Matthias Clasen <mclasen> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | low | ||
| Version: | 12 | CC: | mclasen |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | 2.18.3-22.fc12 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2009-12-02 04:28:02 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
The output of xkbcomp is sane:
$ setxkbmap -symbols 'pc+us(altgr-intl)+level3(lwin_switch)+level3(ralt_switch)'
$ xkbcomp -xkb :0 busted.xkb
$ setxkbmap -symbols 'pc+us(altgr-intl)+level3(ralt_switch)'
$ xkbcomp -xkb :0 correct.xkb
$ diff busted.xkb correct.xkb
1071c1071
< xkb_symbols "pc+us(altgr-intl)+level3(lwin_switch)+level3(ralt_switch)" {
---
> xkb_symbols "pc+us(altgr-intl)+level3(ralt_switch)" {
1380,1383c1380
< key <LWIN> {
< type= "ONE_LEVEL",
< symbols[Group1]= [ ISO_Level3_Shift ]
< };
---
> key <LWIN> { [ Super_L ] };
gtk2-2.18.4-1.fc12 has been submitted as an update for Fedora 12. http://admin.fedoraproject.org/updates/gtk2-2.18.4-1.fc12 gtk2-2.18.3-22.fc12 has been pushed to the Fedora 12 stable repository. If problems still persist, please make note of it in this bug report. confirmed fixed, thanks. |
Description of problem: Level-3 keys do not work properly in GTK+ applications if you choose other level-3 choosers than altgr. Neither dead nor non-dead AltGr combinations work, except in gnome-terminal, where only dead AltGr combinations are broken. Dead keys instead work as long as they're not invoked by altgr (they work everywhere, even in gnome-terminal). Everything works properly in Qt applications or other X applications. Version-Release number of selected component (if applicable): gtk2-2.18.3-21.fc12 xorg-x11-apps-7.3-8.fc11.x86_64.rpm xorg-x11-drivers-7.3-11.fc11.x86_64.rpm xorg-x11-drv-evdev-2.2.5-1.fc11.x86_64.rpm xorg-x11-drv-fbdev-0.4.0-4.fc11.x86_64.rpm xorg-x11-drv-intel-2.7.0-7.fc11.x86_64.rpm xorg-x11-drv-keyboard-1.3.2-3.fc11.x86_64.rpm xorg-x11-drv-v4l-0.2.0-2.fc11.x86_64.rpm xorg-x11-server-Xorg-1.6.4-0.1.fc11.x86_64.rpm xorg-x11-server-common-1.6.4-0.1.fc11.x86_64.rpm xorg-x11-server-utils-7.4-7.1.fc11.x86_64.rpm xorg-x11-xkb-utils-7.2-8.fc11.x86_64.rpm How reproducible: 100% Steps to Reproduce: 1. Open gedit. 2. setxkbmap -symbols 'pc+us(altgr-intl)+level3(lwin_switch)+level3(ralt_switch)' 3. Type altgr+e or leftwin+e in gedit, nothing happens. 4. setxkbmap -symbols 'pc+us(altgr-intl)+level3(ralt_switch)' 5. Type altgr+e or leftwin+e in gedit, you get an accented "e". Actual results: See steps 3/5. Expected results: Same behavior for both keymaps. Additional info: 1) Here is the overall keymap computed by setxkbmap: xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us(altgr-intl)+level3(lwin_switch)+level3(ralt_switch)" }; xkb_geometry { include "pc(pc104)" }; }; 2) If you start "xev" and type altgr+e, you see on the console KeyPress event, serial 35, synthetic NO, window 0x4800001, root 0x10b, subw 0x0, time 4513667, (594,272), root:(602,345), state 0xc0, keycode 26 (keysym 0xe9, eacute), same_screen YES, XLookupString gives 2 bytes: (c3 a9) "é" XmbLookupString gives 2 bytes: (c3 a9) "é" XFilterEvent returns: False 3) Also, while I shortened the setxkbmap command lines to the minimum necessary, the same happens with the symbols chosen by the System/Preferences/Keyboard window, for example 'pc+us(altgr-intl)+inet(evdev)+level3(lwin_switch)+level3(ralt_switch)+nbsp(level3)+us:2': just removing level3(lwin_switch) will cause level-3 to work. 4) Finally, the same bug happens also with other keyboard layouts, e.g. replacing us(altgr-intl) with de(nodeadkeys).