GNOME Bugzilla – Bug 694267
The search entry no longer reacts to layout switches
Last modified: 2013-06-22 18:40:21 UTC
Search review will always be in English, even if the language has changed.
Can you please describe what you mean by "search review"?
Typing on "Type to search ..." in GNOME Shell
Created attachment 236931 [details] Video showing the bug
OK, I could reproduce the problem now - the problem is not that it always uses the English layout, but that it always sticks to the layout that was active when the shell was started.
... and I could just reproduce with the run-dialog, so this looks like a general problem with StEntry.
This bug also exists in bringing Password !
You plan to fix this bug? To do with anything?
This is a clutter bug, patch coming.
Thank you :-)
Created attachment 237129 [details] [review] x11/clutter-keymap-x11: Honor XkbNewKeyboardNotify events We already select for XkbNewKeyboardNotify events but are not acting on them. Start doing so. -- This is the only patch needed to fix the bug here.
Created attachment 237130 [details] [review] x11: Get key events' unicode_value from clutter_keysym_to_unicode() This harmonizes both the core X11 and XI2 code paths and gets rid of copy&pasted code from libX11. -- This is basically a cleanup. It uses the same method that gtk+ uses to determine printable characters from key events. Note that the bug reported here didn't occur when using the core X11 backend because when libX11 has XKB support it will update its internal state on XkbNewKeyboardNotify and thus XLookupString() was still able to produce the correct characters.
I checked - the bug no longer exists. Incidentally, the key combination to change language (Alt + Shift etc) does not work in the review.
Review of attachment 237130 [details] [review]: it would be great to see a conformance test suite to verify that the Unicode translation does not regress between current code and this commit, given that you're switching from using something coming from X11 (or X11 code, in the XI2 case) to something written for Clutter. I'm always wary about "fixing X11", given that people may be relying on crazy values coming from it. the main problem is that injecting X11 events is a pain in the arse... ::: clutter/x11/clutter-device-manager-core-x11.c @@ +257,3 @@ + event->key.unicode_value = (gunichar) '\0'; + + g_unichar_to_utf8 (ch, buffer); not a blocking issue, but given that buffer and g_unichar_to_utf8() are only used in the debug path, it may be better to do: #ifdef CLUTTER_ENABLE_DEBUG { char buffer[7] = { 0, }; g_unichar_to_utf8 (ch, buffer); CLUTTER_NOTE (EVENT, ...) } #endif instead of calling g_unichar_to_utf8() unconditionally.
Review of attachment 237129 [details] [review]: looks obviously correct.
Comment on attachment 237129 [details] [review] x11/clutter-keymap-x11: Honor XkbNewKeyboardNotify events Attachment 237129 [details] pushed as 5c2931a - x11/clutter-keymap-x11: Honor XkbNewKeyboardNotify events