[Libreoffice-commits] core.git: vcl/source winaccessibility/source
Niklas Johansson
sleeping.pillow at gmail.com
Fri Oct 2 06:26:09 PDT 2015
vcl/source/window/menu.cxx | 4 +--
winaccessibility/source/UAccCOM/AccActionBase.cxx | 28 +---------------------
2 files changed, 4 insertions(+), 28 deletions(-)
New commits:
commit b80be50268f534e215d36d69b93d3f51d9410ace
Author: Niklas Johansson <sleeping.pillow at gmail.com>
Date: Thu Oct 1 14:22:21 2015 +0200
Allow non ASCII chars as accelerator keys
Non ASCII characters like åäö can be used as accelerator keys (Alt+<x>).
This already works however at the moment it is not exposed properly
to accessibility tools such as screen readers. After this patch at least
NVDA gets information about accelerator keys that are non ascii. On
Linux we need to adapt code in vcl/unx/atk/a11y/atkaction.cxx.
There is also vcl/source/window/dlgctrl.cxx#Window::GetActivationKey
should probably have similar treatment and I guess that it is related
to accelerator keys in dialogs but I need to confirm that.
I'm a bit unsure how to best do that so I'll save it for later.
Change-Id: I1f1509a26d781011d217670266bd10b2107811d5
Reviewed-on: https://gerrit.libreoffice.org/19078
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 2505afa..34804c1 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -862,8 +862,8 @@ KeyEvent Menu::GetActivationKey( sal_uInt16 nItemId ) const
nCode = KEY_A + (cAccel-'A');
else if( cAccel >= '0' && cAccel <= '9' )
nCode = KEY_0 + (cAccel-'0');
- if(nCode )
- aRet = KeyEvent( cAccel, KeyCode( nCode, KEY_MOD2 ) );
+
+ aRet = KeyEvent( cAccel, KeyCode( nCode, KEY_MOD2 ) );
}
}
diff --git a/winaccessibility/source/UAccCOM/AccActionBase.cxx b/winaccessibility/source/UAccCOM/AccActionBase.cxx
index fabdc40..71ffb9b 100644
--- a/winaccessibility/source/UAccCOM/AccActionBase.cxx
+++ b/winaccessibility/source/UAccCOM/AccActionBase.cxx
@@ -285,32 +285,8 @@ void CAccActionBase::GetkeyBindingStrByXkeyBinding( const Sequence< KeyStroke >
{
KeyStroke stroke = keySet[iIndex];
OLECHAR wString[64] = {NULL};
- if(iIndex>0)
- wcscat( wString, OLESTR(" ") );
- if((stroke.Modifiers & MODIFIER_SHIFT) == MODIFIER_SHIFT)
- wcscat( wString, OLESTR("Shift+") );
- if((stroke.Modifiers & MODIFIER_CTRL) == MODIFIER_CTRL)
- wcscat( wString, OLESTR("Ctrl+") );
- if((stroke.Modifiers & MODIFIER_ALT) == MODIFIER_ALT)
- wcscat( wString, OLESTR("Alt+") );
- if(stroke.KeyCode)
- {
- OLECHAR* pChar = getOLECHARFromKeyCode(stroke.KeyCode);
- if(pChar != NULL)
- wcscat( wString, pChar );
- else if (stroke.KeyCode <= 255)
- {
- OLECHAR pChar[4] = {NULL};
- swprintf( pChar, L"%c", stroke.KeyCode);
- wcscat( wString, pChar);
- }
- else
- {
- OLECHAR pChar[4] = {NULL};
- swprintf( pChar, L"%d", stroke.KeyCode);
- wcscat( wString, pChar);
- }
- }
+ wcscat(wString, OLESTR("\n"));
+ wcscat(wString, &stroke.KeyChar);
wcscat( pString, wString);
}
More information about the Libreoffice-commits
mailing list