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 508147 - at-spi always using Xkb for modifier keys
at-spi always using Xkb for modifier keys
Status: RESOLVED FIXED
Product: at-spi
Classification: Platform
Component: registry
1.18.x
Other All
: Urgent minor
: ---
Assigned To: Li Yuan
Li Yuan
Depends on:
Blocks:
 
 
Reported: 2008-01-08 21:02 UTC by Michal Babej
Modified: 2008-02-25 02:50 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16


Attachments
initial patch for the problem (2.00 KB, patch)
2008-01-09 16:54 UTC, Michal Babej
none Details | Review
updated patch (2.17 KB, patch)
2008-01-16 13:24 UTC, Michal Babej
none Details | Review
2nd update (3.32 KB, patch)
2008-02-02 18:36 UTC, Michal Babej
committed Details | Review

Description Michal Babej 2008-01-08 21:02:03 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 ?
Comment 1 Michal Babej 2008-01-09 16:54:36 UTC
Created attachment 102476 [details] [review]
initial patch for the problem

needs polishing, but does work in vnc
Comment 2 Willie Walker 2008-01-09 17:39:02 UTC
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.  :-)
Comment 3 Li Yuan 2008-01-11 09:59:03 UTC
I will review it next week.
Comment 4 Matthias Clasen 2008-01-15 15:57:00 UTC
xmkeymap should be static, I think.

And you probably only want to set it if you don't have xkb
Comment 5 Michal Babej 2008-01-16 13:24:20 UTC
Created attachment 102992 [details] [review]
updated patch
Comment 6 Matthias Clasen 2008-01-16 21:04:59 UTC
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.
Comment 7 Willie Walker 2008-01-28 16:58:17 UTC
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.
Comment 8 Michal Babej 2008-02-02 18:36:30 UTC
Created attachment 104268 [details] [review]
2nd update

needs a bit more testing...
Comment 9 Matthias Clasen 2008-02-05 17:23:00 UTC
Last patch looks fine to me, modulo testing.
Comment 10 Li Yuan 2008-02-19 10:07:11 UTC
Do we get any result from test?
Comment 11 Alexander Todorov 2008-02-19 10:25:20 UTC
(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.
Comment 12 Michal Babej 2008-02-20 13:07:32 UTC
Tested with changing modmap runtime, picks up changes correctly.