Пример #1
0
Canddisp *canddisp_singleton()
{
    if (XimServer::gCandWinStyleUpdated) {
	terminate_canddisp_connection();
	command = NULL;
	XimServer::gCandWinStyleUpdated = false;
    }

    if (!command)
	command = candwin_command();

    if (!candwin_initted && command) {
	candwin_pid = uim_ipc_open_command(candwin_pid, &candwin_r, &candwin_w, command);
	if (disp)
	    delete disp;
	disp = new Canddisp();
	int fd = fileno(candwin_r);
	if (fd != -1) {
	    int flag = fcntl(fd, F_GETFL);
	    if (flag != -1) {
		flag |= O_NONBLOCK;
		if (fcntl(fd, F_SETFL, flag) != -1)
		    add_fd_watch(fd, READ_OK, candwin_read_cb);
	    }
	}
	candwin_initted = true;
    }
    return disp;
}
Пример #2
0
static int
pretrans_setup()
{
    int fd = XConnectionNumber(XimServer::gDpy);

    add_fd_watch(fd, READ_OK, xEventRead);
    return fd;
}