summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2023-03-22 16:59:23 +0000
committerAndras Timar <andras.timar@collabora.com>2023-04-03 00:53:11 +0200
commit2fd55b39546e49145e4b331959d1909c237593b8 (patch)
tree35a7841ea1f49ba5d301c55e60f86c3aaaf41b22 /framework
parentc54824cd87d090c5f2cc77107ea693a5102dd657 (diff)
fix crash seen when experimenting with tdf#129547
Change-Id: I0b26a7f683f91d3307856f86c5a437fde1155451 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149331 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 936f2e6924e405433770b98f32a615508fd0670d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149434 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'framework')
-rw-r--r--framework/source/accelerators/acceleratorconfiguration.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/framework/source/accelerators/acceleratorconfiguration.cxx b/framework/source/accelerators/acceleratorconfiguration.cxx
index 3507314a9a6e..ad08f375a177 100644
--- a/framework/source/accelerators/acceleratorconfiguration.cxx
+++ b/framework/source/accelerators/acceleratorconfiguration.cxx
@@ -64,7 +64,10 @@ namespace framework
static OUString lcl_getKeyString(const css::awt::KeyEvent& aKeyEvent)
{
const sal_Int32 nBeginIndex = 4; // "KEY_" is the prefix of an identifier...
- OUStringBuffer sKeyBuffer((KeyMapping::get().mapCodeToIdentifier(aKeyEvent.KeyCode)).subView(nBeginIndex));
+ OUString sKey(KeyMapping::get().mapCodeToIdentifier(aKeyEvent.KeyCode));
+ if (sKey.getLength() < nBeginIndex) // dead key
+ return OUString();
+ OUStringBuffer sKeyBuffer(sKey.subView(nBeginIndex));
if ( (aKeyEvent.Modifiers & css::awt::KeyModifier::SHIFT) == css::awt::KeyModifier::SHIFT )
sKeyBuffer.append("_SHIFT");