Closed Bug 1618759 Opened 5 years ago Closed 5 years ago

[TSF][IMM] Update inputmode support type per current spec on Windows

Categories

(Core :: DOM: UI Events & Focus Handling, enhancement, P3)

All
Windows
enhancement

Tracking

()

RESOLVED FIXED
mozilla77
Tracking Status
firefox77 --- fixed

People

(Reporter: m_kato, Assigned: m_kato)

References

(Regressed 1 open bug)

Details

(Keywords: inputmethod)

Attachments

(6 files)

Moving all open keyboard/IME handling bugs to DOM: UI Events & Focus Handling component.

Component: Widget: Win32 → DOM: UI Events & Focus Handling
Assignee: nobody → m_kato
OS: Unspecified → Windows
Hardware: Unspecified → All
Summary: Update inputmode support type per current spec on Windows → [TSF][IMM] Update inputmode support type per current spec on Windows

(In reply to Masayuki Nakano [:masayuki] (he/him)(JST, +0900) from comment #2)

I think that you need to update IMEHandler::SetInputScopeForIMM32() too.
https://searchfox.org/mozilla-central/rev/202a285024f174c2d2bf2152d9cba90a03723eab/widget/windows/WinIMEHandler.cpp#637

Yes, I will clean up this since this is duplicated code.

Gecko has duplicated code for input scope support, so I would like to clean up
this.

Current WHATWG spec means that numeric is IS_DIGITS and decimal is
IS_NUMBER.

Depends on D68312

Current WHATWG spec is that inputmode attribute supports non-input element.
I would like to remove input element check for bug 142484 that is
contenteditable support.

Depends on D68313

Unfortunately, current on-screen keyboard (OSK) code in Gecko doesn't work on
current Windows 10. Actually, Windows automatically control OSK when getting
focus. But this isn't good for web browser since inputmode spec can close
OSK by none value.

Windows 10 RS1 has new API (IInputPane [*1]) to control software keyboard. So
we have to use it if OS is RS1 or later.

TSF has new flag as TS_SD_INPUTPANEMANUALDISPLAYENABLE not to control OSK by
TSF. We should use it.

IMM doesn't have this feature to manage OSK. This will become a limitation for
inputmode implementation.

[*1] https://docs.microsoft.com/en-us/uwp/api/windows.ui.viewmanagement.inputpane

Depends on D68314

As long as I test on my environment, bug 1226148 isn't fixed. Since native
message queue is high priority, Gecko may check whether focus is changed
before changing focus to another.

So we shouldn't use native message queue for this. It is better to use idle
queue instead.

Depends on D68315

inputmode=none means that OSK is closed.

SetInputContext doesn't call DismissOnScreenKeyboard directly since
DismissOnScreenKeyboard has no hack of Firefox VR.

Depends on D68316

Pushed by m_kato@ga2.so-net.ne.jp: https://hg.mozilla.org/integration/autoland/rev/010d99db9abd Part 1. Use common method to set input scope. r=masayuki https://hg.mozilla.org/integration/autoland/rev/a4dcd48616d9 Part 2. Support decimal and search value for inputmode. r=masayuki https://hg.mozilla.org/integration/autoland/rev/0e3a40bf9ba8 Part 3. Allow inputmode for non-input element. r=masayuki https://hg.mozilla.org/integration/autoland/rev/020258996c4a Part 4. Use InputPane to open on-screen keyboard for Windows 10 RS1+. r=masayuki https://hg.mozilla.org/integration/autoland/rev/f06a8ee813cf Part 5. Lazy check whether OSK is closed. r=masayuki https://hg.mozilla.org/integration/autoland/rev/77a93a01f924 Part 6. Don't open on-screen keyboard when inputmode is none. r=masayuki
Pushed by m_kato@ga2.so-net.ne.jp: https://hg.mozilla.org/integration/autoland/rev/0e93a09256cf Part 1. Use common method to set input scope. r=masayuki https://hg.mozilla.org/integration/autoland/rev/d093998cd803 Part 2. Support decimal and search value for inputmode. r=masayuki https://hg.mozilla.org/integration/autoland/rev/16ece38ec547 Part 3. Allow inputmode for non-input element. r=masayuki https://hg.mozilla.org/integration/autoland/rev/a08598089a5e Part 4. Use InputPane to open on-screen keyboard for Windows 10 RS1+. r=masayuki https://hg.mozilla.org/integration/autoland/rev/662d50adf92a Part 5. Lazy check whether OSK is closed. r=masayuki https://hg.mozilla.org/integration/autoland/rev/3c9c7960f75f Part 6. Don't open on-screen keyboard when inputmode is none. r=masayuki
Regressions: 1648534
Blocks: 1815967
Regressions: 1836472
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: