+ PAID id;
+ W ret, len, val, err;
+ Bool found;
+ TC *str;
+
+ ret = cfnd_par(window->wid, wev->s.pos, &id);
+ if (ret <= 0) {
+ return;
+ }
+ if (id == window->ss_list_id) {
+ cact_par(window->ss_list_id, wev);
+ }
+ if (id == window->ms_delete_id) {
+ ret = cact_par(window->ms_delete_id, wev);
+ if ((ret & 0x5000) != 0x5000) {
+ return;
+ }
+ err = cget_val(window->ss_list_id, 1, (W*)&val);
+ if (err < 0) {
+ DP_ER("cget_val ss_list_id error:", err);
+ return;
+ }
+ if (val < 0) {
+ return;
+ }
+ found = ngwordwindow_searchwordbyindex(window, val - 1, &str, &len);
+ if (found == False) {
+ DP(("not found in ngwordwindow parts\n"));
+ return;
+ }
+ memcpy(window->strbuf, str, len * sizeof(TC));
+ evt->type = DATHMIEVENT_TYPE_NGWORD_REMOVE;
+ evt->data.ngword_append.str = window->strbuf;
+ evt->data.ngword_append.len = len;
+ return;
+ }
+ if (id == window->tb_input_id) {
+ for (;;) {
+ ret = cact_par(window->tb_input_id, wev);
+ if (ret < 0) {
+ DP_ER("cact_par tb_input_id error:", ret);
+ return;
+ }
+ switch (ret & 0xefff) {
+ case P_EVENT:
+ switch (wev->s.type) {
+ case EV_INACT:
+ case EV_REQUEST:
+ wugt_evt(wev);
+ return;
+ case EV_DEVICE:
+ oprc_dev(&wev->e, NULL, 0);
+ break;
+ }
+ wev->s.type = EV_NULL;
+ continue;
+ case P_MENU:
+ if ((wev->s.type == EV_KEYDWN)&&(wev->s.stat & ES_CMD)) {
+ } else {
+ }
+ wev->s.type = EV_NULL;
+ continue;
+ case (0x4000|P_NL):
+ case (0x4000|P_TAB):
+ return;
+ case (0x4000|P_BUT):
+ wugt_evt(wev);
+ return;
+ default:
+ return;
+ }
+ }
+ }
+ if (id == window->ms_append_id) {
+ ret = cact_par(window->ms_append_id, wev);
+ if ((ret & 0x5000) != 0x5000) {
+ return;
+ }
+ len = cget_val(window->tb_input_id, 128, (W*)window->strbuf);
+ if (len <= 0) {
+ return;
+ }
+ evt->type = DATHMIEVENT_TYPE_NGWORD_APPEND;
+ evt->data.ngword_append.str = window->strbuf;
+ evt->data.ngword_append.len = len;
+ len = cset_val(window->tb_input_id, 0, NULL);
+ if (len < 0) {
+ DP_ER("cset_val tb_input_id error", len);
+ }
+ return;
+ }