Bug 1306549 part.2 Create overload methods which take ModifierKeyState instead of VirtualKey::ShiftState r=m_kato

This patch gets rid of |shiftState| from KeyboardLayout::InitNativeKey() and make each caller clearer.  This must make other developers understand what modifier state is used at each call.

MozReview-Commit-ID: 6zydP1jkffv

--HG--
extra : rebase_source : ea1d5f49ea02812aa632bdbad871688879f2b401
This commit is contained in:
Masayuki Nakano 2016-09-30 15:32:10 +09:00
Родитель af0de6d7e8
Коммит 1559d32969
2 изменённых файлов: 27 добавлений и 13 удалений

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

@ -3653,8 +3653,6 @@ KeyboardLayout::InitNativeKey(NativeKey& aNativeKey,
"Printable key's key name index must be KEY_NAME_INDEX_USE_STRING");
bool isKeyDown = aNativeKey.IsKeyDownMessage();
uint8_t shiftState =
VirtualKey::ModifiersToShiftState(aModKeyState.GetModifiers());
if (IsDeadKey(virtualKey, aModKeyState)) {
if ((isKeyDown && mActiveDeadKey < 0) ||
@ -3663,10 +3661,11 @@ KeyboardLayout::InitNativeKey(NativeKey& aNativeKey,
if (isKeyDown) {
// Dead-key state activated at keydown.
mActiveDeadKey = virtualKey;
mDeadKeyShiftState = shiftState;
mDeadKeyShiftState =
VirtualKey::ModifierKeyStateToShiftState(aModKeyState);
}
UniCharsAndModifiers deadChars =
mVirtualKeys[virtualKeyIndex].GetNativeUniChars(shiftState);
mVirtualKeys[virtualKeyIndex].GetNativeUniChars(aModKeyState);
NS_ASSERTION(deadChars.mLength == 1,
"dead key must generate only one character");
aNativeKey.mKeyNameIndex = KEY_NAME_INDEX_Dead;
@ -3680,7 +3679,7 @@ KeyboardLayout::InitNativeKey(NativeKey& aNativeKey,
// set only a character for current key for keyup event.
if (mActiveDeadKey < 0) {
aNativeKey.mCommittedCharsAndModifiers =
mVirtualKeys[virtualKeyIndex].GetUniChars(shiftState);
mVirtualKeys[virtualKeyIndex].GetUniChars(aModKeyState);
return;
}
@ -3711,7 +3710,7 @@ KeyboardLayout::InitNativeKey(NativeKey& aNativeKey,
UniCharsAndModifiers prevDeadChars =
mVirtualKeys[activeDeadKeyIndex].GetUniChars(mDeadKeyShiftState);
UniCharsAndModifiers newChars =
mVirtualKeys[virtualKeyIndex].GetUniChars(shiftState);
mVirtualKeys[virtualKeyIndex].GetUniChars(aModKeyState);
// But keypress events should be fired for each committed character.
aNativeKey.mCommittedCharsAndModifiers = prevDeadChars + newChars;
if (isKeyDown) {
@ -3725,7 +3724,7 @@ KeyboardLayout::InitNativeKey(NativeKey& aNativeKey,
}
UniCharsAndModifiers baseChars =
mVirtualKeys[virtualKeyIndex].GetUniChars(shiftState);
mVirtualKeys[virtualKeyIndex].GetUniChars(aModKeyState);
if (mActiveDeadKey < 0) {
// No dead-keys are active. Just return the produced characters.
aNativeKey.mCommittedCharsAndModifiers = baseChars;
@ -3746,8 +3745,6 @@ KeyboardLayout::InitNativeKey(NativeKey& aNativeKey,
if (isKeyDown) {
DeactivateDeadKeyState();
}
return;
}
bool
@ -3769,11 +3766,8 @@ KeyboardLayout::MaybeInitNativeKeyWithCompositeChar(
return false;
}
uint8_t shiftState =
VirtualKey::ModifiersToShiftState(aModKeyState.GetModifiers());
UniCharsAndModifiers baseChars =
mVirtualKeys[virtualKeyIndex].GetUniChars(shiftState);
mVirtualKeys[virtualKeyIndex].GetUniChars(aModKeyState);
if (baseChars.IsEmpty() || !baseChars.mChars[0]) {
return false;
}

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

@ -118,6 +118,11 @@ public:
typedef uint8_t ShiftState;
static ShiftState ModifiersToShiftState(Modifiers aModifiers);
static ShiftState ModifierKeyStateToShiftState(
const ModifierKeyState& aModKeyState)
{
return ModifiersToShiftState(aModKeyState.GetModifiers());
}
static Modifiers ShiftStateToModifiers(ShiftState aShiftState);
private:
@ -167,8 +172,23 @@ public:
uint32_t aEntries) const;
inline char16_t GetCompositeChar(ShiftState aShiftState,
char16_t aBaseChar) const;
char16_t GetCompositeChar(const ModifierKeyState& aModKeyState,
char16_t aBaseChar) const
{
return GetCompositeChar(ModifierKeyStateToShiftState(aModKeyState),
aBaseChar);
}
UniCharsAndModifiers GetNativeUniChars(ShiftState aShiftState) const;
UniCharsAndModifiers GetNativeUniChars(
const ModifierKeyState& aModKeyState) const
{
return GetNativeUniChars(ModifierKeyStateToShiftState(aModKeyState));
}
UniCharsAndModifiers GetUniChars(ShiftState aShiftState) const;
UniCharsAndModifiers GetUniChars(const ModifierKeyState& aModKeyState) const
{
return GetUniChars(ModifierKeyStateToShiftState(aModKeyState));
}
};
class MOZ_STACK_CLASS NativeKey final