void csd_keyboard_xkb_init (CsdKeyboardManager * kbd_manager) { Display *display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); sagarmatha_settings_profile_start (NULL); gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), DATADIR G_DIR_SEPARATOR_S "icons"); manager = kbd_manager; sagarmatha_settings_profile_start ("xkl_engine_get_instance"); xkl_engine = xkl_engine_get_instance (display); sagarmatha_settings_profile_end ("xkl_engine_get_instance"); if (xkl_engine) { inited_ok = TRUE; gkbd_desktop_config_init (¤t_config, xkl_engine); gkbd_keyboard_config_init (¤t_kbd_config, xkl_engine); xkl_engine_backup_names_prop (xkl_engine); csd_keyboard_xkb_analyze_sysconfig (); settings_desktop = g_settings_new (GKBD_DESKTOP_SCHEMA); settings_keyboard = g_settings_new (GKBD_KEYBOARD_SCHEMA); g_signal_connect (settings_desktop, "changed", (GCallback) apply_desktop_settings, NULL); g_signal_connect (settings_keyboard, "changed", (GCallback) apply_xkb_settings, NULL); gdk_window_add_filter (NULL, (GdkFilterFunc) csd_keyboard_xkb_evt_filter, NULL); if (xkl_engine_get_features (xkl_engine) & XKLF_DEVICE_DISCOVERY) g_signal_connect (xkl_engine, "X-new-device", G_CALLBACK (csd_keyboard_new_device), NULL); sagarmatha_settings_profile_start ("xkl_engine_start_listen"); xkl_engine_start_listen (xkl_engine, XKLL_MANAGE_LAYOUTS | XKLL_MANAGE_WINDOW_STATES); sagarmatha_settings_profile_end ("xkl_engine_start_listen"); sagarmatha_settings_profile_start ("apply_desktop_settings"); apply_desktop_settings (); sagarmatha_settings_profile_end ("apply_desktop_settings"); sagarmatha_settings_profile_start ("apply_xkb_settings"); apply_xkb_settings (); sagarmatha_settings_profile_end ("apply_xkb_settings"); } preview_dialogs = g_hash_table_new (g_direct_hash, g_direct_equal); sagarmatha_settings_profile_end (NULL); }
void gsd_keyboard_xkb_init (GConfClient * client) { gnome_settings_profile_start (NULL); #ifdef GSDKX xkl_set_debug_level (200); logfile = fopen ("/tmp/gsdkx.log", "a"); xkl_set_log_appender (gsd_keyboard_log_appender); #endif gnome_settings_profile_start ("xkl_engine_get_instance"); xkl_engine = xkl_engine_get_instance (GDK_DISPLAY ()); gnome_settings_profile_end ("xkl_engine_get_instance"); if (xkl_engine) { inited_ok = TRUE; gdm_keyboard_layout = g_getenv ("GDM_KEYBOARD_LAYOUT"); gkbd_desktop_config_init (¤t_config, client, xkl_engine); gkbd_keyboard_config_init (¤t_kbd_config, client, xkl_engine); xkl_engine_backup_names_prop (xkl_engine); gsd_keyboard_xkb_analyze_sysconfig (); gnome_settings_profile_start ("gsd_keyboard_xkb_chk_lcl_xmm"); gsd_keyboard_xkb_chk_lcl_xmm (); gnome_settings_profile_end ("gsd_keyboard_xkb_chk_lcl_xmm"); notify_desktop = register_config_callback (client, GKBD_DESKTOP_CONFIG_DIR, (GConfClientNotifyFunc) apply_desktop_settings); notify_keyboard = register_config_callback (client, GKBD_KEYBOARD_CONFIG_DIR, (GConfClientNotifyFunc) apply_xkb_settings); gdk_window_add_filter (NULL, (GdkFilterFunc) gsd_keyboard_xkb_evt_filter, NULL); if (xkl_engine_get_features (xkl_engine) & XKLF_DEVICE_DISCOVERY) g_signal_connect (xkl_engine, "X-new-device", G_CALLBACK (gsd_keyboard_new_device), NULL); gnome_settings_profile_start ("xkl_engine_start_listen"); xkl_engine_start_listen (xkl_engine, XKLL_MANAGE_LAYOUTS | XKLL_MANAGE_WINDOW_STATES); gnome_settings_profile_end ("xkl_engine_start_listen"); gnome_settings_profile_start ("apply_desktop_settings"); apply_desktop_settings (); gnome_settings_profile_end ("apply_desktop_settings"); gnome_settings_profile_start ("apply_xkb_settings"); apply_xkb_settings (); gnome_settings_profile_end ("apply_xkb_settings"); } preview_dialogs = g_hash_table_new (g_direct_hash, g_direct_equal); gnome_settings_profile_end (NULL); }