summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Luby <guibmacdev@gmail.com>2024-02-23 17:45:19 -0500
committerPatrick Luby <guibomacdev@gmail.com>2024-02-24 02:09:42 +0100
commitef57aeb9ed190e18ebc034b9a45e190aea3f8f1d (patch)
treecc9c7aaadcffd0c36f8a103053c62da1cacbb267
parentc68712d3689a0322e59934cd8151d003e869f30d (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.mm10
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