mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 23:38:38 +09:00
Issue #1348 - Part 1: Clean up input scope support for IMM32.
Use AutoTArray to set input scope.
This commit is contained in:
parent
e82bb23d7e
commit
8972304bba
1 changed files with 26 additions and 50 deletions
|
|
@ -588,77 +588,53 @@ IMEHandler::SetInputScopeForIMM32(nsWindow* aWindow,
|
|||
if (sIsInTSFMode || !sSetInputScopes || aWindow->Destroyed()) {
|
||||
return;
|
||||
}
|
||||
UINT arraySize = 0;
|
||||
const InputScope* scopes = nullptr;
|
||||
AutoTArray<InputScope, 3> scopes;
|
||||
// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html
|
||||
if (aHTMLInputType.IsEmpty() || aHTMLInputType.EqualsLiteral("text")) {
|
||||
if (aHTMLInputInputmode.EqualsLiteral("url")) {
|
||||
static const InputScope inputScopes[] = { IS_URL };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_URL);
|
||||
} else if (aHTMLInputInputmode.EqualsLiteral("email")) {
|
||||
static const InputScope inputScopes[] = { IS_EMAIL_SMTPEMAILADDRESS };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_EMAIL_SMTPEMAILADDRESS);
|
||||
} else if (aHTMLInputInputmode.EqualsLiteral("tel")) {
|
||||
static const InputScope inputScopes[] =
|
||||
{IS_TELEPHONE_LOCALNUMBER, IS_TELEPHONE_FULLTELEPHONENUMBER};
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_TELEPHONE_LOCALNUMBER);
|
||||
scopes.AppendElement(IS_TELEPHONE_FULLTELEPHONENUMBER);
|
||||
} else if (aHTMLInputInputmode.EqualsLiteral("numeric")) {
|
||||
static const InputScope inputScopes[] = { IS_NUMBER };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_NUMBER);
|
||||
} else {
|
||||
static const InputScope inputScopes[] = { IS_DEFAULT };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_DEFAULT);
|
||||
}
|
||||
} else if (aHTMLInputType.EqualsLiteral("url")) {
|
||||
static const InputScope inputScopes[] = { IS_URL };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_URL);
|
||||
} else if (aHTMLInputType.EqualsLiteral("search")) {
|
||||
static const InputScope inputScopes[] = { IS_SEARCH };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_SEARCH);
|
||||
} else if (aHTMLInputType.EqualsLiteral("email")) {
|
||||
static const InputScope inputScopes[] = { IS_EMAIL_SMTPEMAILADDRESS };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_EMAIL_SMTPEMAILADDRESS);
|
||||
} else if (aHTMLInputType.EqualsLiteral("password")) {
|
||||
static const InputScope inputScopes[] = { IS_PASSWORD };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_PASSWORD);
|
||||
} else if (aHTMLInputType.EqualsLiteral("datetime") ||
|
||||
aHTMLInputType.EqualsLiteral("datetime-local")) {
|
||||
static const InputScope inputScopes[] = {
|
||||
IS_DATE_FULLDATE, IS_TIME_FULLTIME };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_DATE_FULLDATE);
|
||||
scopes.AppendElement(IS_TIME_FULLTIME);
|
||||
} else if (aHTMLInputType.EqualsLiteral("date") ||
|
||||
aHTMLInputType.EqualsLiteral("month") ||
|
||||
aHTMLInputType.EqualsLiteral("week")) {
|
||||
static const InputScope inputScopes[] = { IS_DATE_FULLDATE };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_DATE_FULLDATE);
|
||||
} else if (aHTMLInputType.EqualsLiteral("time")) {
|
||||
static const InputScope inputScopes[] = { IS_TIME_FULLTIME };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_TIME_FULLTIME);
|
||||
} else if (aHTMLInputType.EqualsLiteral("tel")) {
|
||||
static const InputScope inputScopes[] = {
|
||||
IS_TELEPHONE_FULLTELEPHONENUMBER, IS_TELEPHONE_LOCALNUMBER };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_TELEPHONE_FULLTELEPHONENUMBER);
|
||||
scopes.AppendElement(IS_TELEPHONE_LOCALNUMBER);
|
||||
} else if (aHTMLInputType.EqualsLiteral("number")) {
|
||||
static const InputScope inputScopes[] = { IS_NUMBER };
|
||||
scopes = &inputScopes[0];
|
||||
arraySize = ArrayLength(inputScopes);
|
||||
scopes.AppendElement(IS_NUMBER);
|
||||
}
|
||||
if (scopes && arraySize > 0) {
|
||||
sSetInputScopes(aWindow->GetWindowHandle(), scopes, arraySize, nullptr, 0,
|
||||
nullptr, nullptr);
|
||||
if (!scopes.IsEmpty()) {
|
||||
sSetInputScopes(aWindow->GetWindowHandle(),
|
||||
scopes.Elements(),
|
||||
scopes.Length(),
|
||||
nullptr,
|
||||
0,
|
||||
nullptr,
|
||||
nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue