зеркало из https://github.com/mozilla/gecko-dev.git
Bug 805162 - b. Redefine Java to Gecko IME events to align with Android IME design; r=blassey
This commit is contained in:
Родитель
3ec7856ec9
Коммит
1ca53980b0
|
@ -80,14 +80,12 @@ public class GeckoEvent {
|
|||
private static final int DOM_KEY_LOCATION_MOBILE = 4;
|
||||
private static final int DOM_KEY_LOCATION_JOYSTICK = 5;
|
||||
|
||||
public static final int IME_COMPOSITION_END = 0;
|
||||
public static final int IME_COMPOSITION_BEGIN = 1;
|
||||
public static final int IME_SET_TEXT = 2;
|
||||
public static final int IME_GET_TEXT = 3;
|
||||
public static final int IME_DELETE_TEXT = 4;
|
||||
public static final int IME_SET_SELECTION = 5;
|
||||
public static final int IME_GET_SELECTION = 6;
|
||||
public static final int IME_ADD_RANGE = 7;
|
||||
public static final int IME_SYNCHRONIZE = 0;
|
||||
public static final int IME_REPLACE_TEXT = 1;
|
||||
public static final int IME_SET_SELECTION = 2;
|
||||
public static final int IME_ADD_COMPOSITION_RANGE = 3;
|
||||
public static final int IME_UPDATE_COMPOSITION = 4;
|
||||
public static final int IME_REMOVE_COMPOSITION = 5;
|
||||
|
||||
public static final int IME_RANGE_CARETPOSITION = 1;
|
||||
public static final int IME_RANGE_RAWINPUT = 2;
|
||||
|
@ -118,7 +116,8 @@ public class GeckoEvent {
|
|||
public int mMetaState, mFlags;
|
||||
public int mKeyCode, mUnicodeChar;
|
||||
public int mRepeatCount;
|
||||
public int mOffset, mCount;
|
||||
public int mCount;
|
||||
public int mStart, mEnd;
|
||||
public String mCharacters, mCharactersExtra;
|
||||
public int mRangeType, mRangeStyles;
|
||||
public int mRangeForeColor, mRangeBackColor;
|
||||
|
@ -459,44 +458,51 @@ public class GeckoEvent {
|
|||
return event;
|
||||
}
|
||||
|
||||
public static GeckoEvent createIMEEvent(int imeAction, int offset, int count) {
|
||||
public static GeckoEvent createIMEEvent(int action) {
|
||||
GeckoEvent event = new GeckoEvent(IME_EVENT);
|
||||
event.mAction = imeAction;
|
||||
event.mOffset = offset;
|
||||
event.mCount = count;
|
||||
event.mAction = action;
|
||||
return event;
|
||||
}
|
||||
|
||||
private void InitIMERange(int action, int offset, int count,
|
||||
int rangeType, int rangeStyles,
|
||||
int rangeForeColor, int rangeBackColor) {
|
||||
mAction = action;
|
||||
mOffset = offset;
|
||||
mCount = count;
|
||||
mRangeType = rangeType;
|
||||
mRangeStyles = rangeStyles;
|
||||
mRangeForeColor = rangeForeColor;
|
||||
mRangeBackColor = rangeBackColor;
|
||||
return;
|
||||
}
|
||||
|
||||
public static GeckoEvent createIMERangeEvent(int offset, int count,
|
||||
int rangeType, int rangeStyles,
|
||||
int rangeForeColor, int rangeBackColor,
|
||||
public static GeckoEvent createIMEReplaceEvent(int start, int end,
|
||||
String text) {
|
||||
GeckoEvent event = new GeckoEvent(IME_EVENT);
|
||||
event.InitIMERange(IME_SET_TEXT, offset, count, rangeType, rangeStyles,
|
||||
rangeForeColor, rangeBackColor);
|
||||
event.mAction = IME_REPLACE_TEXT;
|
||||
event.mStart = start;
|
||||
event.mEnd = end;
|
||||
event.mCharacters = text;
|
||||
return event;
|
||||
}
|
||||
|
||||
public static GeckoEvent createIMERangeEvent(int offset, int count,
|
||||
int rangeType, int rangeStyles,
|
||||
int rangeForeColor, int rangeBackColor) {
|
||||
public static GeckoEvent createIMESelectEvent(int start, int end) {
|
||||
GeckoEvent event = new GeckoEvent(IME_EVENT);
|
||||
event.InitIMERange(IME_ADD_RANGE, offset, count, rangeType, rangeStyles,
|
||||
rangeForeColor, rangeBackColor);
|
||||
event.mAction = IME_SET_SELECTION;
|
||||
event.mStart = start;
|
||||
event.mEnd = end;
|
||||
return event;
|
||||
}
|
||||
|
||||
public static GeckoEvent createIMECompositionEvent(int start, int end) {
|
||||
GeckoEvent event = new GeckoEvent(IME_EVENT);
|
||||
event.mAction = IME_UPDATE_COMPOSITION;
|
||||
event.mStart = start;
|
||||
event.mEnd = end;
|
||||
return event;
|
||||
}
|
||||
|
||||
public static GeckoEvent createIMERangeEvent(int start,
|
||||
int end, int rangeType,
|
||||
int rangeStyles,
|
||||
int rangeForeColor,
|
||||
int rangeBackColor) {
|
||||
GeckoEvent event = new GeckoEvent(IME_EVENT);
|
||||
event.mAction = IME_ADD_COMPOSITION_RANGE;
|
||||
event.mStart = start;
|
||||
event.mEnd = end;
|
||||
event.mRangeType = rangeType;
|
||||
event.mRangeStyles = rangeStyles;
|
||||
event.mRangeForeColor = rangeForeColor;
|
||||
event.mRangeBackColor = rangeBackColor;
|
||||
return event;
|
||||
}
|
||||
|
||||
|
|
|
@ -33,8 +33,9 @@ jfieldID AndroidGeckoEvent::jDomKeyLocationField = 0;
|
|||
jfieldID AndroidGeckoEvent::jFlagsField = 0;
|
||||
jfieldID AndroidGeckoEvent::jUnicodeCharField = 0;
|
||||
jfieldID AndroidGeckoEvent::jRepeatCountField = 0;
|
||||
jfieldID AndroidGeckoEvent::jOffsetField = 0;
|
||||
jfieldID AndroidGeckoEvent::jCountField = 0;
|
||||
jfieldID AndroidGeckoEvent::jStartField = 0;
|
||||
jfieldID AndroidGeckoEvent::jEndField = 0;
|
||||
jfieldID AndroidGeckoEvent::jPointerIndexField = 0;
|
||||
jfieldID AndroidGeckoEvent::jRangeTypeField = 0;
|
||||
jfieldID AndroidGeckoEvent::jRangeStylesField = 0;
|
||||
|
@ -227,8 +228,9 @@ AndroidGeckoEvent::InitGeckoEventClass(JNIEnv *jEnv)
|
|||
jFlagsField = getField("mFlags", "I");
|
||||
jUnicodeCharField = getField("mUnicodeChar", "I");
|
||||
jRepeatCountField = getField("mRepeatCount", "I");
|
||||
jOffsetField = getField("mOffset", "I");
|
||||
jCountField = getField("mCount", "I");
|
||||
jStartField = getField("mStart", "I");
|
||||
jEndField = getField("mEnd", "I");
|
||||
jPointerIndexField = getField("mPointerIndex", "I");
|
||||
jRangeTypeField = getField("mRangeType", "I");
|
||||
jRangeStylesField = getField("mRangeStyles", "I");
|
||||
|
@ -564,14 +566,13 @@ AndroidGeckoEvent::Init(JNIEnv *jenv, jobject jobj)
|
|||
break;
|
||||
|
||||
case IME_EVENT:
|
||||
if (mAction == IME_GET_TEXT || mAction == IME_SET_SELECTION) {
|
||||
mOffset = jenv->GetIntField(jobj, jOffsetField);
|
||||
mCount = jenv->GetIntField(jobj, jCountField);
|
||||
} else if (mAction == IME_SET_TEXT || mAction == IME_ADD_RANGE) {
|
||||
if (mAction == IME_SET_TEXT)
|
||||
mStart = jenv->GetIntField(jobj, jStartField);
|
||||
mEnd = jenv->GetIntField(jobj, jEndField);
|
||||
|
||||
if (mAction == IME_REPLACE_TEXT) {
|
||||
ReadCharactersField(jenv);
|
||||
mOffset = jenv->GetIntField(jobj, jOffsetField);
|
||||
mCount = jenv->GetIntField(jobj, jCountField);
|
||||
} else if (mAction == IME_UPDATE_COMPOSITION ||
|
||||
mAction == IME_ADD_COMPOSITION_RANGE) {
|
||||
mRangeType = jenv->GetIntField(jobj, jRangeTypeField);
|
||||
mRangeStyles = jenv->GetIntField(jobj, jRangeStylesField);
|
||||
mRangeForeColor =
|
||||
|
|
|
@ -676,8 +676,9 @@ public:
|
|||
int Flags() { return mFlags; }
|
||||
int UnicodeChar() { return mUnicodeChar; }
|
||||
int RepeatCount() const { return mRepeatCount; }
|
||||
int Offset() { return mOffset; }
|
||||
int Count() { return mCount; }
|
||||
int Start() { return mStart; }
|
||||
int End() { return mEnd; }
|
||||
int PointerIndex() { return mPointerIndex; }
|
||||
int RangeType() { return mRangeType; }
|
||||
int RangeStyles() { return mRangeStyles; }
|
||||
|
@ -703,7 +704,8 @@ protected:
|
|||
int mDomKeyLocation;
|
||||
int mKeyCode, mUnicodeChar;
|
||||
int mRepeatCount;
|
||||
int mOffset, mCount;
|
||||
int mCount;
|
||||
int mStart, mEnd;
|
||||
int mRangeType, mRangeStyles;
|
||||
int mRangeForeColor, mRangeBackColor;
|
||||
double mX, mY, mZ;
|
||||
|
@ -753,8 +755,9 @@ protected:
|
|||
static jfieldID jMetaStateField;
|
||||
static jfieldID jDomKeyLocationField;
|
||||
static jfieldID jFlagsField;
|
||||
static jfieldID jOffsetField;
|
||||
static jfieldID jCountField;
|
||||
static jfieldID jStartField;
|
||||
static jfieldID jEndField;
|
||||
static jfieldID jPointerIndexField;
|
||||
static jfieldID jUnicodeCharField;
|
||||
static jfieldID jRepeatCountField;
|
||||
|
@ -807,14 +810,12 @@ public:
|
|||
};
|
||||
|
||||
enum {
|
||||
IME_COMPOSITION_END = 0,
|
||||
IME_COMPOSITION_BEGIN = 1,
|
||||
IME_SET_TEXT = 2,
|
||||
IME_GET_TEXT = 3,
|
||||
IME_DELETE_TEXT = 4,
|
||||
IME_SET_SELECTION = 5,
|
||||
IME_GET_SELECTION = 6,
|
||||
IME_ADD_RANGE = 7
|
||||
IME_SYNCHRONIZE = 0,
|
||||
IME_REPLACE_TEXT = 1,
|
||||
IME_SET_SELECTION = 2,
|
||||
IME_ADD_COMPOSITION_RANGE = 3,
|
||||
IME_UPDATE_COMPOSITION = 4,
|
||||
IME_REMOVE_COMPOSITION = 5
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче