FCITX_EXPORT_API void FcitxInstanceGetWindowRect(FcitxInstance* instance, FcitxInputContext* ic, int* x, int* y, int* w, int* h) { if (ic == NULL) return; FcitxAddon **pfrontend = FcitxInstanceGetPFrontend(instance, ic->frontendid); if (pfrontend == NULL) return; FcitxFrontend* frontend = (*pfrontend)->frontend; if (frontend->GetWindowRect) { frontend->GetWindowRect((*pfrontend)->addonInstance, ic, x, y, w, h); } }
FCITX_EXPORT_API void FcitxInstanceGetWindowPosition(FcitxInstance* instance, FcitxInputContext* ic, int* x, int* y) { if (ic == NULL) return; FcitxAddon **pfrontend = FcitxInstanceGetPFrontend(instance, ic->frontendid); if (pfrontend == NULL) return; FcitxFrontend* frontend = (*pfrontend)->frontend; int rx, ry, rw, rh; if (frontend->GetWindowRect) { frontend->GetWindowRect((*pfrontend)->addonInstance, ic, &rx, &ry, &rw, &rh); *x = rx; *y = ry + rh; } }