// Required by fcitx. Adds our file descriptor (for the tablet) to its // fd_set, so we can get notified about new tablet input void FcitxTabletSetFd(void* arg) { FcitxTablet* tablet = (FcitxTablet*) arg; int fd = tablet->driverInstance->GetDescriptor(tablet->driverData); if(fd > 0) { FD_SET(fd, FcitxInstanceGetReadFDSet(tablet->fcitx)); if(FcitxInstanceGetMaxFD(tablet->fcitx) < fd) FcitxInstanceSetMaxFD(tablet->fcitx, fd); } // also add the timeout FD FD_SET(tablet->timeoutFd, FcitxInstanceGetReadFDSet(tablet->fcitx)); if(FcitxInstanceGetMaxFD(tablet->fcitx) < tablet->timeoutFd) FcitxInstanceSetMaxFD(tablet->fcitx, tablet->timeoutFd); }
void RemoteSetFD(void* arg) { FcitxRemote* remote = (FcitxRemote*) arg; FD_SET(remote->socket_fd, FcitxInstanceGetReadFDSet(remote->owner)); if (FcitxInstanceGetMaxFD(remote->owner) < remote->socket_fd) FcitxInstanceSetMaxFD(remote->owner, remote->socket_fd); }
void CloudPinyinSetFD(void* arg) { FcitxCloudPinyin* cloudpinyin = (FcitxCloudPinyin*) arg; FcitxInstance* instance = cloudpinyin->owner; int maxfd = cloudpinyin->pipeRecv; FD_SET(maxfd, FcitxInstanceGetReadFDSet(instance)); if (maxfd > FcitxInstanceGetMaxFD(instance)) FcitxInstanceSetMaxFD(instance, maxfd); }
void X11SetFD(void* arg) { FcitxX11* x11priv = (FcitxX11*)arg; int fd = ConnectionNumber(x11priv->dpy); FD_SET(fd, FcitxInstanceGetReadFDSet(x11priv->owner)); if (FcitxInstanceGetMaxFD(x11priv->owner) < fd) FcitxInstanceSetMaxFD(x11priv->owner, fd); }