Commit Graph

52 Commits

Author SHA1 Message Date
Masayuki Nakano
9236ebac46 Bug 1409155 - IMEHandler should not associate IMC with any window if active IME is ATOK 2010 or earlier with x64 build on Win8 or later r=m_kato
ATOK started to be TIP of TSF since 2011.  Older than it, i.e., ATOK 2010 and
earlier have a lot of problems even for daily use.  Perhaps, the reason is
Win 8 has a lot of changes around IMM-IME support and TSF, and ATOK 2010 is
released earlier than Win 8.

ATOK 2006 crashes while converting a word with candidate window.
ATOK 2007 doesn't paint and resize suggest window and candidate window
correctly (showing white window or too big window).
ATOK 2008 and ATOK 2009 crash when user just opens their open state.
ATOK 2010 isn't installable newly on Win 7 or later, but we have a lot of
crash reports.

Note that ATOK 2006 is the first version supporting Win XP x64.  So, ATOK 2005
must not support x64 apps.

Unfortunately, we cannot block loading DLLs of them.  Therefore, IMEHandler
should disassociate IMC from active window when user changes active keyboard
layout to the legacy ATOK and not associate IME with any window when
SetInputContext() is called even with "enabled".  Additionally, when user
changes active keyboard layout from the legacy ATOK to one of the other
keyboard layouts, IMEHandler should associate IMC with current window for
new active IME.

MozReview-Commit-ID: RVYwmYxzO7
2017-10-25 23:51:27 +09:00
Masayuki Nakano
ad87fe0903 Bug 1395876 - Initialize TSF modules after we create first normal window r=m_kato
Currently, we initialize TSF modules when there is only message window (this
started from bug 1341915).  At this time, QQ Input (Simplified Chinese TIP)
fails to initialize itself.

Therefore, we should put off to initialize TSF modules after creating first
normal window.  Then, initialize its IMC and input context for the window.

IMEHandler::InitInputContext() should be called when each normal window is
created.  Therefore, calling Initialize() from it can guarantee there is
at least one normal window when Initialize() is called.

MozReview-Commit-ID: IfR4y3pYv6J
2017-09-08 16:26:54 +09:00
Masayuki Nakano
51c2cd00a6 Bug 1367692 - Make IMEHandler not restore default IMC unless legacy IMM-IME is active. r=m_kato
TIPs (and normal keyboard layouts) don't need IMC on focused window.  So, in most environment, it's not necessary to restore default IMC of focused window.

Therefore, this patch makes IMEHandler not restore default IMC unless legacy IMM-IME is active and disassociate IMC from focused window when IMM-IME isn't active.

However, this is risky change.  Therefore, the new behavior is disabled in default settings.  On the other hand, we need the new behavior only when MS-IME for Japanese is active on Win10.  Therefore, this patch adds a pref to enable/disable the hack and make it true in the default settings.

MozReview-Commit-ID: KAVxVT9CrsW
2017-06-07 11:42:27 +09:00
Masayuki Nakano
6d6b3d0a27 Bug 1296220 Rename nsIMEUpdatePreference to mozilla::widget::IMEUpdatePreference r=m_kato
MozReview-Commit-ID: 2rIXTlwA6my
2017-04-11 21:24:55 +09:00
Masayuki Nakano
aacaa69364 Bug 1137561 part.1 Implement WinTextEventDispatcherListener as a singleton class for using TextEventDispatcher at handling native keyboard and IME events r=m_kato 2016-03-16 13:47:48 +09:00
Gijs Kruitbosch
4c730826ef Bug 1239744 - no longer automatically show an on-screen keyboard for programmatic focus changes, tidy up osk logic in IMEHandler, r=masayuki 2016-02-09 19:39:55 +00:00
Gijs Kruitbosch
64220f48c5 Bug 1240208 - use inputmode in XUL to get better hinting for IME and on-screen keyboards, r=masayuki,smaug 2016-02-01 17:57:29 +00:00
Gijs Kruitbosch
508906798a Bug 1226148 - reduce flickering and closing when using the OSK tab key, r=masayuki 2016-01-18 12:14:43 +00:00
Makoto Kato
5e49cc7809 Bug 1208944 - Part 10-b. Call DefaultProc When CompositionEvent isn't handled correctly by plugin. r=masayuki 2015-12-29 22:57:38 +09:00
Makoto Kato
1c11b1945f Bug 1208944 - Part 9. Hook IMM32 APIs on plugin process. r=masayuki 2015-12-29 22:57:38 +09:00
Sebastian Hengst
e8bb1c660e Backed out 15 changesets (bug 1208944) for failing tests M(2,5) on OSX. r=backout
Backed out changeset c29de223de2f (bug 1208944)
Backed out changeset 3d99da255be1 (bug 1209844)
Backed out changeset 3c915942af38 (bug 1209844)
Backed out changeset 759b425b5503 (bug 1208944)
Backed out changeset bf73cf8f0fda (bug 1208944)
Backed out changeset 0e337d912b7d (bug 1208944)
Backed out changeset 31c47f2980b5 (bug 1208944)
Backed out changeset 3e0d70a6e809 (bug 1208944)
Backed out changeset 7685dcb63e5f (bug 1208944)
Backed out changeset 3c2b9372dd36 (bug 1208944)
Backed out changeset 18160d306493 (bug 1208944)
Backed out changeset 4974e397b655 (bug 1208944)
Backed out changeset fde7e439844d (bug 1208944)
Backed out changeset 4213a355fbdc (bug 1208944)
Backed out changeset 33cfddbbf5f2 (bug 1208944)
2015-12-29 17:42:02 +01:00
Makoto Kato
700c4607c4 Bug 1208944 - Part 10-b. Call DefaultProc When CompositionEvent isn't handled correctly by plugin. r=masayuki 2015-12-29 22:57:38 +09:00
Makoto Kato
1ecd04e712 Bug 1208944 - Part 9. Hook IMM32 APIs on plugin process. r=masayuki 2015-12-29 22:57:38 +09:00
Gijs Kruitbosch
3e9c495c10 Bug 1226145 - actually check whether the on-screen keyboard is up rather than relying on internal state, r=masayuki 2015-12-16 12:48:12 +00:00
Masayuki Nakano
21a40a0391 Bug 1179632 part.1 native IME context should not be stored in InputContext but should be able to retrieve with nsIWidget::GetNativeData() r=smaug 2015-12-11 15:15:57 +09:00
Masayuki Nakano
03870011ab Bug 1224454 part.1 IMEHandler should generate NOTIFY_IME_OF_BLUR in e10s mode if the focused widget is being destroyed before receiving NOTIFY_IME_OF_BLUR r=m_kato 2015-11-17 16:47:06 +09:00
Gijs Kruitbosch
c555074726 Bug 1221947 - part 2: add TOUCH cause to IME Handling and use it to avoid checking for a keyboard, r=masayuki 2015-11-12 16:36:19 +00:00
Masayuki Nakano
b032ff93a6 Bug 1211352 part.3 nsIWidget::GetIMEupdatePreference() for each platform should not request any notifications while a plugin has focus r=m_kato 2015-10-10 10:21:02 +09:00
Jared Wein
e18af178bb Bug 1197722 - Respect Win10 pref about bringing up the touch keyboard outside of tablet mode. r=masayuki 2015-09-02 12:12:10 -04:00
Jared Wein
d3b3cc3c7c Bug 1007063 - Show virtual (on-screen) keyboard in Windows 8 and higher when text fields are focused if physical keyboards are not present. r=jimm r=masayuki r=m_kato 2015-08-05 10:38:51 -04:00
Ryan VanderMeulen
bb83a74ea4 Backed out changeset 621a6c6aa375 (bug 1007063) for Windows XP test failures/crashes.
CLOSED TREE
2015-08-05 12:20:17 -04:00
Jared Wein
1a30ef97fd Bug 1007063 - Show virtual (on-screen) keyboard in Windows 8 and higher when text fields are focused if physical keyboards are not present. r=jimm r=masayuki r=m_kato 2015-08-05 10:38:51 -04:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Masayuki Nakano
04d1c99277 Bug 1081993 WinIMEHandler should notify nsIMM32Handler of some notifications even in TSF mode when IMM IME is active r=emk 2014-10-16 10:02:29 +09:00
Masayuki Nakano
fa8d4547e8 Bug 965685 Use IMENotification struct for nsIWidget::NotifyIME() and merge NotifyIMEOfTextChange() with it r=smaug, sr=roc 2014-02-18 09:00:15 +09:00
Masatoshi Kimura
5bbacee4ff Bug 969918 - Use decltype to declare pointers for dynamic-loaded functions. r=jimm sr=roc 2014-02-18 07:32:52 +09:00
Masayuki Nakano
35bffcf3e1 Bug 951966 part.2 Associate or disassociate IME context to focused window even in TSF mode r=jimm 2014-01-14 11:00:59 +09:00
Masayuki Nakano
66e174f5f3 Bug 951966 part.1 Add new pref to support IMM-IME even in TSF mode and rename intl.enable_tsf_support to intl.tsf.enable r=jimm 2014-01-14 11:00:59 +09:00
Masayuki Nakano
c97e23707c Bug 912956 part.2 Rename nsEvent.h to mozilla/EventForwards.h and sort out it r=roc 2013-09-24 19:04:14 +09:00
Masayuki Nakano
211e557742 Bug 891316 part.5 Use widget::MSGResult in widget::IMEHandler r=jimm 2013-07-18 17:12:31 +09:00
Masayuki Nakano
796e634602 Bug 866736 part.3 Replace CRLF in WinIMEHandler.(h|cpp) with LF r=jimm 2013-06-28 01:06:45 +09:00
Masayuki Nakano
ee5977a0d9 Bug 855975 part.17 Move nsWindow::OnKeyDown() to widget::NativeKey::HandleKeyDownMessage() r=jimm 2013-05-29 15:34:49 +09:00
Masayuki Nakano
a98bd7ecbe Bug 855975 part.12 Move special keypress event handling from nsWindow::OnKeyDown() to widget::NativeKey::DispatchKeyPressEventsAndDiscardsCharMessages r=jimm 2013-05-29 15:34:48 +09:00
Yohei Yukawa
ecc9581d85 Bug 866736 Use SetInputScopes to support InputScope on IMM32 r=masayuki 2013-04-30 00:41:45 +09:00
Masayuki Nakano
314f1b7f53 Bug 848672 Redesign focus handling of nsTextStore r=jimm 2013-03-27 09:04:02 +09:00
Masayuki Nakano
9ea76e4b10 Bug 849647 Get rid of message order optimization on Windows r=jimm 2013-03-23 23:18:52 +09:00
Masayuki Nakano
0a09469913 Bug 807241 Use ITfMessagePump and ITfKeystrokeMgr r=jimm 2013-03-18 13:41:24 +09:00
Masayuki Nakano
2a8b9da788 Bug 840409 part.16 Use IMM even in TSF mode when plugin has focus r=jimm 2013-02-25 13:00:07 +09:00
Masayuki Nakano
0ddfa5dafa Bug 840409 part.15 Implement widget::IMEHandler::CanOptimizeKeyAndIMEMessages() r=jimm 2013-02-25 13:00:07 +09:00
Masayuki Nakano
c0cf88b47c Bug 840409 part.14 Implement widget::IMEHandler::GetNativeData() r=jimm 2013-02-25 13:00:07 +09:00
Masayuki Nakano
0b6df719c7 Bug 840409 part.13 Implement widget::IMEHandler::IsIMEEnabled() which checks whether the state indicates IME available or not r=jimm 2013-02-25 13:00:07 +09:00
Masayuki Nakano
b11d202562 Bug 840409 part.12 Implement widget::IMEHandler::InitInputContext() and widget::IMEHandler::SetInputContext() r=jimm 2013-02-25 13:00:06 +09:00
Masayuki Nakano
d77ec1a2c8 Bug 840409 part.11 Implement nsIMEContext::AssociateDefaultContext() and nsIMEContext::Disassociate() r=jimm 2013-02-25 13:00:06 +09:00
Masayuki Nakano
87e6efa41c Bug 840409 part.10 Implement widget::IMEHandler::SetOpenState() and widget::IMEHandler::GetOpenState() r=jimm 2013-02-25 13:00:06 +09:00
Masayuki Nakano
dc25103390 Bug 840409 part.9 Implement widget::IMEHandler::GetUpdatePreference() r=jimm 2013-02-25 13:00:06 +09:00
Masayuki Nakano
c43f99b6e8 Bug 840409 part.8 Implement widget::IMEHandler::NotifyIMEOfTextChange() r=jimm 2013-02-25 13:00:06 +09:00
Masayuki Nakano
06f68bb034 Bug 840409 part.6 Implement widget::IMEHandler::NotifyIME() for committing and canceling composition r=jimm, feedback=roc 2013-02-25 13:00:06 +09:00
Masayuki Nakano
e8d25344c1 Bug 840409 part.5 Implement widget::IMEHandler::IsComposing() and widget::IMEHandler::IsComposingOn() r=jimm 2013-02-25 13:00:05 +09:00
Masayuki Nakano
ff927569e6 Bug 840409 part.4 Implement widget::IMEHandler::CurrentKeyboardLayoutHasIME() for debug r=jimm 2013-02-25 13:00:05 +09:00
Masayuki Nakano
2256b94d4c Bug 840409 part.3 Implement widget::IMEHandler::ProcessMessage() r=jimm 2013-02-25 13:00:05 +09:00