GNOME Bugzilla – Bug 685063
AccessX should get disabled on shutdown
Last modified: 2013-01-28 17:43:58 UTC
gnome-settings-daemon a11y-keyboard plugin enables the various AccessX hotkeys at start up, but doesn't clear them at shutdown. This is fine for the user session, but for GDM it can be problematic if the user subsequently logs into a desktop environment that doesn't deal with AccessX (e.g. show notifications when slow keys gets enabled). This caused a lot of confusion on a downstream report: https://bugzilla.redhat.com/show_bug.cgi?id=816764 We probably just need to clear things on shutdown if none of the AccessX features got toggled on.
Created attachment 234636 [details] [review] 0001-a11y-keyboard-Disable-everything-on-exit-if-no-setti.patch
Review of attachment 234636 [details] [review]: hey thanks for looking at this. s/enableable/enable/ above. looks good ::: plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c @@ +750,3 @@ + XkbDescRec *desc; + + desc = get_xkb_desc_rec (manager); down the line, it might make sense to keep this in the priv struct, since XkbDescRec is sort of designed to be used like a local cache i think. @@ +759,3 @@ + + XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE); + gdk_error_trap_pop_ignored (); seems a little strange to use pop_ignored then XSync.
(In reply to comment #2) > Review of attachment 234636 [details] [review]: > > hey thanks for looking at this. s/enableable/enable/ above. looks good Oops. Read you review after testing and committing... > ::: plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c > @@ +750,3 @@ > + XkbDescRec *desc; > + > + desc = get_xkb_desc_rec (manager); > > down the line, it might make sense to keep this in the priv struct, since > XkbDescRec is sort of designed to be used like a local cache i think. If somebody makes a test suite so that we don't break everything when refactoring it, sure. Otherwise, I'll keep out :) > @@ +759,3 @@ > + > + XSync (GDK_DISPLAY_XDISPLAY > (gdk_display_get_default ()), FALSE); > + gdk_error_trap_pop_ignored (); > > seems a little strange to use pop_ignored then XSync. That's the way the code was called from set_server_from_gsettings().