GNOME Bugzilla – Bug 508147
at-spi always using Xkb for modifier keys
Last modified: 2008-02-25 02:50:25 UTC
change at-spi-registryd to fallback using something else when xkb extension is missing. Other information: dogtail is using pyatspi's Registry.generateKeyboardEvent(), and i found out it cannot type any upper-case letter, when a session is running in a vnc server. I found out this code is used for locking modifier keys in at-spi/registryd/deviceeventcontroller.c static gboolean dec_lock_modifiers (SpiDEController *controller, unsigned modifiers) { return XkbLockModifiers (spi_get_display (), XkbUseCoreKbd, modifiers, modifiers); } since vnc server doesn't support xkb extension, this doesn't work. Would it be possible to add a different way to (un)lock modifier keys ?
Created attachment 102476 [details] [review] initial patch for the problem needs polishing, but does work in vnc
Cool! I've been working on regression testing for Orca and ran into this same problem a while back. I haven't had a chance to look at it, so I'm glad you're looking at it. :-)
I will review it next week.
xmkeymap should be static, I think. And you probably only want to set it if you don't have xkb
Created attachment 102992 [details] [review] updated patch
To be entirely correct, you probably want to handle MappingNotify events and set xmkeymap to NULL in the event handler, to force a refresh of the map.
Hi All: sorry to be a nooge on this, but is there a way we can get to a patch everyone agrees on? This will be very very very useful for automated testing.
Created attachment 104268 [details] [review] 2nd update needs a bit more testing...
Last patch looks fine to me, modulo testing.
Do we get any result from test?
(In reply to comment #10) > Do we get any result from test? > I've tested with custom RPM packages provided by Michal and it worked fine for me. These packages included the first incarnation of the patch.
Tested with changing modmap runtime, picks up changes correctly.