} void scim_bridge_client_imcontext_focus_out (GtkIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_focus_out ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); focused_widget = NULL; focused_imcontext = imcontext; if (imcontext->preedit_shown) { if (imcontext->enabled) { scim_bridge_client_imcontext_set_preedit_shown (imcontext, FALSE); scim_bridge_client_imcontext_update_preedit (imcontext); } else { gtk_im_context_reset (GTK_IM_CONTEXT (fallback_imcontext)); } } if (scim_bridge_client_is_messenger_opened () && imcontext != NULL) { if (scim_bridge_client_change_focus (imcontext, FALSE)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_focus_out ()"); } } if (key_snooper_used) { gtk_key_snooper_remove (key_snooper_id); key_snooper_id = 0; key_snooper_used = FALSE; }
static VALUE rg_s_key_snooper_remove(VALUE self, VALUE id) { gtk_key_snooper_remove(NUM2UINT(id)); G_REMOVE_RELATIVE(self, id__snooper_callbacks__, id); return Qnil; }
static void fcitx_im_context_class_fini (FcitxIMContextClass *klass) { if (_key_snooper_id != 0) { gtk_key_snooper_remove (_key_snooper_id); _key_snooper_id = 0; } }
void scim_bridge_client_imcontext_static_finalize () { if (key_snooper_used) { gtk_key_snooper_remove (key_snooper_id); key_snooper_id = 0; key_snooper_used = FALSE; } focused_imcontext = NULL; }
void scim_bridge_client_imcontext_static_finalize () { g_signal_handlers_disconnect_by_func (fallback_imcontext, &fallback_commit_handler, NULL); g_object_unref (fallback_imcontext); if (key_snooper_used) { gtk_key_snooper_remove (key_snooper_id); key_snooper_id = 0; key_snooper_used = FALSE; } fallback_imcontext = NULL; focused_imcontext = NULL; }
static void mai_util_remove_key_event_listener (guint remove_listener) { if (!key_listener_list) { // atk-bridge is initialized with gail (e.g. yelp) // try gail_remove_key_event_listener return gail_remove_key_event_listener(remove_listener); } g_hash_table_remove(key_listener_list, GUINT_TO_POINTER (remove_listener)); if (g_hash_table_size(key_listener_list) == 0) { gtk_key_snooper_remove(key_snooper_id); } }