[gdm-list] Bringing back a11y



Hi guys,

So one important regression we need to workout in trunk is making it
fully accessible.

Jon toggled the switch yesterday to make AccessX sticky keys and slow
keys available via the normal shift key mechanisms (hold shift key
down for a long time and get slow keys, tap it several times and get
sticky keys).

One thing we need to move foward though is some solution for what
GtkModulesList did in gdm-2-20.  That key is a list of gtk modules to
run when the greeter is started.

For reference it was set to:

GtkModulesList=gail:atk-bridge:@libdir@/gtk-2.0/modules/libdwellmouselistener:@libdir@/gtk-2.0/modules/libkeymouselistener

the first two should be handled by gnome-settings-daemon, so they
shouldn't be an issue.  The last two, the dwell mouse listener and the
key mouse listener are sort of special, though.

They are GDM specific gtk modules that watch for key events or mouse
gestures on the greeter window.  When the modules recognize a gesture
or key combo they then launch an AT associated with that gesture or
key combo.

There isn't really any advantage to making these listeners gtk
modules, so it may make sense to rewrite them to just be normal
programs that run at greeter session startup.

If we put desktop files that point to these programs in

/usr/share/gdm/autostart/LoginWindow

then they will get run from within the greeter session.

For the key listener we should watch for events on the root window,
but one complication comes with the gesture listener?  How do we find
which window to watch for gestures on?

I think the answer is to add

"role", "greeter-login-window"

or

"title", "Login Window"

to the list of construct time properties in gdm_greeter_login_window_new

The listener can then use gdk_screen_get_toplevel_windows to get a
list of windows running in the session, iterate over them, use the
GDK_WINDOW_XWINDOW () macro on the resulting gdk windows to get their
corresponding XIDs and use  XGetProperty to find the window with the
_NET_WM_NAME set to "Login Window" or WM_WINDOW_ROLE set to
"greeter-login-window".

--Ray


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]