editeng/source/editeng/impedit5.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
New commits: commit 2dc604d5dc088dd80c8254bf5e2bddd5acac3bf7 Author: Patrick Luby <[email protected]> AuthorDate: Fri Sep 19 11:05:35 2025 -0400 Commit: Adolfo Jayme Barrientos <[email protected]> CommitDate: Sun Sep 21 19:49:01 2025 +0200 tdf#168375 return false if both KEY_MOD1 and KEY_MOD2 are pressed Previously ImpEditEngine::IsSimpleCharInput() returned false only if one of these modifiers is pressed. At least on macOS, pressing Command-Option with a character is not a simple character so return false if both modifiers are pressed. Change-Id: I7698a1ec3178b83c0a1d4e161915246cac08f0ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191205 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> (cherry picked from commit ed45cdaef3d2807d0b9d6a4c08da375fc72024a6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191209 Reviewed-by: Patrick Luby <[email protected]> Reviewed-by: Adolfo Jayme Barrientos <[email protected]> diff --git a/editeng/source/editeng/impedit5.cxx b/editeng/source/editeng/impedit5.cxx index 5a356281ac76..b82e361038c5 100644 --- a/editeng/source/editeng/impedit5.cxx +++ b/editeng/source/editeng/impedit5.cxx @@ -1338,9 +1338,14 @@ bool ImpEditEngine::PostKeyEvent( const KeyEvent& rKeyEvent, EditView* pEditView bool ImpEditEngine::IsSimpleCharInput( const KeyEvent& rKeyEvent ) { - return EditEngine::IsPrintable( rKeyEvent.GetCharCode() ) && - ( KEY_MOD2 != (rKeyEvent.GetKeyCode().GetModifier() & ~KEY_SHIFT ) ) && - ( KEY_MOD1 != (rKeyEvent.GetKeyCode().GetModifier() & ~KEY_SHIFT ) ); + // tdf#168375 return false if both KEY_MOD1 and KEY_MOD2 are pressed + // Previously this function returned false only if one of these + // modifiers is pressed. At least on macOS, pressing Command-Option + // with a character is not a simple character so return false if + // both modifiers are pressed. + sal_uInt16 nNonShiftModifiers = rKeyEvent.GetKeyCode().GetModifier() & ~KEY_SHIFT; + nNonShiftModifiers &= ( KEY_MOD1 | KEY_MOD2 ); + return !nNonShiftModifiers && EditEngine::IsPrintable( rKeyEvent.GetCharCode() ); } void ImpEditEngine::SetControlWord( EEControlBits nWord )
