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); }
void setup_xkb_tabs (GtkBuilder * dialog) { GtkWidget *widget; GtkStyleContext *context; GtkWidget *chk_new_windows_inherit_layout; chk_new_windows_inherit_layout = WID ("chk_new_windows_inherit_layout"); xkb_desktop_settings = g_settings_new (GKBD_DESKTOP_SCHEMA); xkb_keyboard_settings = g_settings_new (GKBD_KEYBOARD_SCHEMA); engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); config_registry = xkl_config_registry_get_instance (engine); gkbd_desktop_config_init (&desktop_config, engine); gkbd_desktop_config_load (&desktop_config); xkl_config_registry_load (config_registry, desktop_config.load_extra_items); gkbd_keyboard_config_init (&initial_config, engine); gkbd_keyboard_config_load_from_x_initial (&initial_config, NULL); /* Set initial state */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("chk_separate_group_per_window")), g_settings_get_boolean (xkb_desktop_settings, GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (chk_new_windows_inherit_layout), xkb_get_default_group () < 0); g_settings_bind (xkb_desktop_settings, GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, WID ("chk_separate_group_per_window"), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (xkb_desktop_settings, GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, WID ("chk_new_windows_inherit_layout"), "sensitive", G_SETTINGS_BIND_DEFAULT); g_settings_bind (xkb_desktop_settings, GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, WID ("chk_new_windows_default_layout"), "sensitive", G_SETTINGS_BIND_DEFAULT); xkb_layouts_prepare_selected_tree (dialog); xkb_layouts_fill_selected_tree (dialog); xkb_layouts_register_buttons_handlers (dialog); g_signal_connect (G_OBJECT (WID ("xkb_reset_to_defaults")), "clicked", G_CALLBACK (reset_to_defaults), dialog); g_signal_connect (G_OBJECT (chk_new_windows_inherit_layout), "toggled", G_CALLBACK (chk_new_windows_inherit_layout_toggled), dialog); g_signal_connect_swapped (G_OBJECT (WID ("xkb_layout_options")), "clicked", G_CALLBACK (xkb_options_popup_dialog), dialog); xkb_layouts_register_conf_listener (dialog); xkb_options_register_conf_listener (dialog); g_object_weak_ref (G_OBJECT (WID ("region_notebook")), (GWeakNotify) cleanup_xkb_tabs, dialog); enable_disable_restoring (dialog); /* Setup junction between toolbar and treeview */ widget = WID ("xkb_layouts_swindow"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); widget = WID ("layouts-toolbar"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); }