diff --git a/gnome-settings-daemon/ChangeLog b/gnome-settings-daemon/ChangeLog index 73889ed47..4a23ad2ad 100644 --- a/gnome-settings-daemon/ChangeLog +++ b/gnome-settings-daemon/ChangeLog @@ -1,3 +1,10 @@ +2002-03-29 Jody Goldberg + + * gnome-settings-accessibility-keyboard.c + (gnome_settings_accessibility_keyboard_init) : get really anal about + potential X errors. + (set_gconf_from_server) : ditto. + 2002-03-29 Jody Goldberg * gnome-settings-accessibility-keyboard.c (set_server_from_gconf) : diff --git a/gnome-settings-daemon/gnome-settings-accessibility-keyboard.c b/gnome-settings-daemon/gnome-settings-accessibility-keyboard.c index dcaef39c2..608fcd658 100644 --- a/gnome-settings-daemon/gnome-settings-accessibility-keyboard.c +++ b/gnome-settings-daemon/gnome-settings-accessibility-keyboard.c @@ -183,8 +183,11 @@ set_gconf_from_server (GConfEntry *ignored) XkbDescRec *desc; GConfClient *client = gconf_client_get_default (); + gdk_error_trap_push (); desc = XkbGetMap(GDK_DISPLAY (), 0, XkbUseCoreKbd); XkbGetControls (GDK_DISPLAY (), XkbAllControlsMask, desc); + XFlush (GDK_DISPLAY ()); + gdk_error_trap_pop (); desc->ctrls->ax_options = XkbAX_LatchToLockMask; @@ -275,13 +278,18 @@ gnome_settings_accessibility_keyboard_init (GConfClient *client) { int opcode, errorBase, major, minor; + gdk_error_trap_push (); + if (!XkbQueryExtension (GDK_DISPLAY (), &opcode, &xkbEventBase, &errorBase, &major, &minor) || !XkbUseExtension (GDK_DISPLAY (), &major, &minor)) return; - XkbSelectEvents (GDK_DISPLAY (), XkbUseCoreKbd, XkbAllEventsMask, XkbAllEventsMask); + + XFlush (GDK_DISPLAY ()); + gdk_error_trap_pop (); + gdk_window_add_filter (NULL, &cb_xkb_event_filter, NULL); gnome_settings_daemon_register_callback (CONFIG_ROOT, &set_server_from_gconf);