cleanup: simplify frontend request ownership

This commit is contained in:
2026-08-13 21:57:32 +09:00
parent 13f0b436b8
commit b6a9ccd9d9
9 changed files with 74 additions and 79 deletions

View File

@@ -4,9 +4,7 @@
static Im im;
static int popup = 0;
static int visible = 0;
static Lock ownerlock;
static uvlong ownerctr;
static uvlong activeowner;
static void *activeowner;
static Caret caret;
static void dictqmap(Im*);
static void dictqjp(Im*);
@@ -22,19 +20,6 @@ struct Search
};
static Search search;
uvlong
ownernew(void)
{
uvlong n;
lock(&ownerlock);
n = ++ownerctr;
if(n == 0)
n = ++ownerctr;
unlock(&ownerlock);
return n;
}
Lang langs[] = {
{LangEN, nil, nil, nil, nil, nil, nil, nil},
{LangJP, "hira", "kanji", transmap, backjp, dictqjp, nil, nil},
@@ -155,7 +140,7 @@ reset(void)
show();
}
void
static void
dictsend(Im *im, Str *key)
{
Dictreq old, req;
@@ -792,7 +777,7 @@ init(void)
im.l = getlang(LangEN);
memset(&search, 0, sizeof search);
memset(&caret, 0, sizeof caret);
activeowner = 0;
activeowner = nil;
visible = 0;
}
@@ -814,7 +799,7 @@ imhandlekey(Keyreq *kr)
case Keyrelease:
if(kr->owner == activeowner){
reset();
activeowner = 0;
activeowner = nil;
}
break;
case Keyreset:
@@ -827,7 +812,7 @@ imhandlekey(Keyreq *kr)
show();
}
break;
default:
case Keypress:
res.eaten = 0;
if(meaningful(kr)){
if(kr->owner != activeowner){
@@ -840,7 +825,7 @@ imhandlekey(Keyreq *kr)
}
break;
}
if(kr->want && kr->owner == activeowner){
if(kr->owner == activeowner){
if(search.lang)
res.preedit = search.text;
else