Exemplo n.º 1
0
void RimeWithWeaselHandler::Finalize()
{
	m_active_session = 0;
	m_disabled = true;
	LOG(INFO) << "Finalizing la rime.";
	RimeFinalize();
}
Exemplo n.º 2
0
static void rime_with_ibus() {
    ibus_init();
    IBusBus *bus = ibus_bus_new();
    g_object_ref_sink(bus);

    if (!ibus_bus_is_connected(bus)) {
        g_warning("not connected to ibus");
        exit(0);
    }

    g_signal_connect(bus, "disconnected", G_CALLBACK(ibus_disconnect_cb), NULL);

    IBusConfig *config = ibus_bus_get_config(bus);
    if (!config) {
        g_warning("ibus config not accessible");
    }
    else {
        g_object_ref_sink(config);
        ibus_rime_load_settings(config);
        g_signal_connect(config, "value-changed",
                         G_CALLBACK(ibus_rime_config_value_changed_cb), NULL);
    }

    IBusFactory *factory = ibus_factory_new(ibus_bus_get_connection(bus));
    g_object_ref_sink(factory);

    ibus_factory_add_engine(factory, "rime", IBUS_TYPE_RIME_ENGINE);
    if (!ibus_bus_request_name(bus, "com.googlecode.rimeime.Rime", 0)) {
        g_error("error requesting bus name");
        exit(1);
    }

    if (!notify_init("ibus-rime")) {
        g_error("notify_init failed");
        exit(1);
    }

    RimeSetupLogging("rime.ibus");

    gboolean full_check = FALSE;
    ibus_rime_start(full_check);

    ibus_main();

    RimeFinalize();
    notify_uninit();

    if (config) {
        g_object_unref(config);
    }
    g_object_unref(factory);
    g_object_unref(bus);
}
Exemplo n.º 3
0
static void sigterm_cb(int sig) {
    RimeFinalize();
    notify_uninit();
    exit(EXIT_FAILURE);
}
Exemplo n.º 4
0
// entry and exit
static void finalize(JNIEnv *env, jobject thiz) {
  ALOGE("finalize...");
  RimeFinalize();
}