diff options
author | Patrick Luby <guibmacdev@gmail.com> | 2024-02-23 17:45:19 -0500 |
---|---|---|
committer | Patrick Luby <guibomacdev@gmail.com> | 2024-02-24 02:09:42 +0100 |
commit | ef57aeb9ed190e18ebc034b9a45e190aea3f8f1d (patch) | |
tree | cc9c7aaadcffd0c36f8a103053c62da1cacbb267 | |
parent | c68712d3689a0322e59934cd8151d003e869f30d (diff) |
tdf#158124 KEY_DELETE events do not need an ExtTextInput event
When using various Japanese input methods, the last event will be a
repeating key down event with a single delete character while the
Backspace key, Delete key, or Fn-Delete keys are pressed. These key
events are now ignored since setting mbTextInputWantsNonRepeatKeyDown
to YES for these events will trigger an assert or crash when saving a
.docx document.
Change-Id: If3762fcf41aa82bf4aa5dc7d1f15c1d282c86f99
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163875
Tested-by: Jenkins
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
-rw-r--r-- | vcl/osx/salframeview.mm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/vcl/osx/salframeview.mm b/vcl/osx/salframeview.mm index 995eeb574999..dba377899838 100644 --- a/vcl/osx/salframeview.mm +++ b/vcl/osx/salframeview.mm @@ -2062,7 +2062,15 @@ static void updateWinDataInLiveResize(bool bInLiveResize) // and then dispatch a SalEvent::EndExtTextInput event. NSString *pNewMarkedText = nullptr; NSString *pChars = [mpLastEvent characters]; - bool bNeedsExtTextInput = ( pChars && mbInKeyInput && !mpLastMarkedText && mpLastEvent && [mpLastEvent type] == NSEventTypeKeyDown && [mpLastEvent isARepeat] ); + + // tdf#158124 KEY_DELETE events do not need an ExtTextInput event + // When using various Japanese input methods, the last event will be a + // repeating key down event with a single delete character while the + // Backspace key, Delete key, or Fn-Delete keys are pressed. These key + // events are now ignored since setting mbTextInputWantsNonRepeatKeyDown + // to YES for these events will trigger an assert or crash when saving a + // .docx document. + bool bNeedsExtTextInput = ( pChars && mbInKeyInput && !mpLastMarkedText && mpLastEvent && [mpLastEvent type] == NSEventTypeKeyDown && [mpLastEvent isARepeat] && ImplMapKeyCode( [mpLastEvent keyCode] ) != KEY_DELETE ); if ( bNeedsExtTextInput ) { // tdf#154708 Preserve selection for repeating Shift-arrow on Japanese keyboard |