зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
af0de6d7e8
Коммит
1559d32969
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче