Bug 899233 - Don't restart IME when changing selection; r=cpeterson

This commit is contained in:
Jim Chen 2013-08-14 11:32:44 -04:00
Родитель 948c42d2f5
Коммит e97edf2412
4 изменённых файлов: 12 добавлений и 0 удалений

Просмотреть файл

@ -48,6 +48,7 @@ interface GeckoEditableClient {
and also for the IC thread to listen to the Editable */
interface GeckoEditableListener {
// IME notification type for notifyIME(), corresponding to NotificationToIME enum in Gecko
final int NOTIFY_IME_OPEN_VKB = -2;
final int NOTIFY_IME_REPLY_EVENT = -1;
final int NOTIFY_IME_OF_FOCUS = 1;
final int NOTIFY_IME_OF_BLUR = 2;

Просмотреть файл

@ -905,6 +905,10 @@ class GeckoInputConnection
resetInputConnection();
break;
case NOTIFY_IME_OPEN_VKB:
showSoftInput();
break;
default:
if (DEBUG) {
throw new IllegalArgumentException("Unexpected NOTIFY_IME=" + type);

Просмотреть файл

@ -126,6 +126,7 @@ public:
enum {
// Values for NotifyIME, in addition to values from the Gecko
// NotificationToIME enum; use negative values here to prevent conflict
NOTIFY_IME_OPEN_VKB = -2,
NOTIFY_IME_REPLY_EVENT = -1,
};

Просмотреть файл

@ -2198,6 +2198,12 @@ nsWindow::SetInputContext(const InputContext& aContext,
mInputContext.mIMEState.mEnabled = enabled;
if (enabled == IMEState::ENABLED && aAction.UserMightRequestOpenVKB()) {
// Don't reset keyboard when we should simply open the vkb
AndroidBridge::NotifyIME(AndroidBridge::NOTIFY_IME_OPEN_VKB);
return;
}
if (mIMEUpdatingContext) {
return;
}