Related tdf#129547 and tdf#154136: add COLON key
Change-Id: I17978dbb100fbfa6f6ddbbbdf96872076bc2a289
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86713
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
diff --git a/cui/source/customize/acccfg.cxx b/cui/source/customize/acccfg.cxx
index 70ec176..f28eee8 100644
--- a/cui/source/customize/acccfg.cxx
+++ b/cui/source/customize/acccfg.cxx
@@ -186,6 +186,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_MOD1 | KEY_X,
KEY_MOD1 | KEY_Y,
KEY_MOD1 | KEY_Z,
KEY_MOD1 | KEY_COLON,
KEY_MOD1 | KEY_SEMICOLON,
KEY_MOD1 | KEY_QUOTELEFT,
KEY_MOD1 | KEY_QUOTERIGHT,
@@ -270,6 +271,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_SHIFT | KEY_MOD1 | KEY_X,
KEY_SHIFT | KEY_MOD1 | KEY_Y,
KEY_SHIFT | KEY_MOD1 | KEY_Z,
KEY_SHIFT | KEY_MOD1 | KEY_COLON,
KEY_SHIFT | KEY_MOD1 | KEY_SEMICOLON,
KEY_SHIFT | KEY_MOD1 | KEY_QUOTELEFT,
KEY_SHIFT | KEY_MOD1 | KEY_QUOTERIGHT,
@@ -350,6 +352,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_MOD2 | KEY_X,
KEY_MOD2 | KEY_Y,
KEY_MOD2 | KEY_Z,
KEY_MOD2 | KEY_COLON,
KEY_MOD2 | KEY_SEMICOLON,
KEY_MOD2 | KEY_QUOTELEFT,
KEY_MOD2 | KEY_QUOTERIGHT,
@@ -428,6 +431,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_SHIFT | KEY_MOD2 | KEY_X,
KEY_SHIFT | KEY_MOD2 | KEY_Y,
KEY_SHIFT | KEY_MOD2 | KEY_Z,
KEY_SHIFT | KEY_MOD2 | KEY_COLON,
KEY_SHIFT | KEY_MOD2 | KEY_SEMICOLON,
KEY_SHIFT | KEY_MOD2 | KEY_QUOTELEFT,
KEY_SHIFT | KEY_MOD2 | KEY_QUOTERIGHT,
@@ -507,6 +511,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_MOD1 | KEY_MOD2 | KEY_X,
KEY_MOD1 | KEY_MOD2 | KEY_Y,
KEY_MOD1 | KEY_MOD2 | KEY_Z,
KEY_MOD1 | KEY_MOD2 | KEY_COLON,
KEY_MOD1 | KEY_MOD2 | KEY_SEMICOLON,
KEY_MOD1 | KEY_MOD2 | KEY_QUOTELEFT,
KEY_MOD1 | KEY_MOD2 | KEY_QUOTERIGHT,
@@ -585,6 +590,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_X,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_Y,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_Z,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_COLON,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_SEMICOLON,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_QUOTELEFT,
KEY_SHIFT | KEY_MOD1 | KEY_MOD2 | KEY_QUOTERIGHT,
@@ -665,6 +671,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_MOD3 | KEY_X,
KEY_MOD3 | KEY_Y,
KEY_MOD3 | KEY_Z,
KEY_MOD3 | KEY_COLON,
KEY_MOD3 | KEY_SEMICOLON,
KEY_MOD3 | KEY_QUOTELEFT,
KEY_MOD3 | KEY_QUOTERIGHT,
@@ -749,6 +756,7 @@ const sal_uInt16 KEYCODE_ARRAY[] = { KEY_F1,
KEY_SHIFT | KEY_MOD3 | KEY_X,
KEY_SHIFT | KEY_MOD3 | KEY_Y,
KEY_SHIFT | KEY_MOD3 | KEY_Z,
KEY_SHIFT | KEY_MOD3 | KEY_COLON,
KEY_SHIFT | KEY_MOD3 | KEY_SEMICOLON,
KEY_SHIFT | KEY_MOD3 | KEY_QUOTELEFT,
KEY_SHIFT | KEY_MOD3 | KEY_QUOTERIGHT,
diff --git a/framework/source/accelerators/keymapping.cxx b/framework/source/accelerators/keymapping.cxx
index b2bd938..4b9588d 100644
--- a/framework/source/accelerators/keymapping.cxx
+++ b/framework/source/accelerators/keymapping.cxx
@@ -137,6 +137,7 @@ KeyMapping::KeyIdentifierInfo const KeyMapping::KeyIdentifierMap[] =
{css::awt::Key::SEMICOLON , "KEY_SEMICOLON" },
{css::awt::Key::QUOTERIGHT , "KEY_QUOTERIGHT" },
{css::awt::Key::RIGHTCURLYBRACKET, "KEY_RIGHTCURLYBRACKET" },
{css::awt::Key::COLON , "KEY_COLON" },
{0 , "" } // mark the end of this array!
};
diff --git a/include/vcl/keycodes.hxx b/include/vcl/keycodes.hxx
index fa54bee..a935b0e 100644
--- a/include/vcl/keycodes.hxx
+++ b/include/vcl/keycodes.hxx
@@ -155,6 +155,7 @@ constexpr sal_uInt16 KEY_BRACKETRIGHT = css::awt::Key::BRACKETRIGHT;
constexpr sal_uInt16 KEY_SEMICOLON = css::awt::Key::SEMICOLON;
constexpr sal_uInt16 KEY_QUOTERIGHT = css::awt::Key::QUOTERIGHT;
constexpr sal_uInt16 KEY_RIGHTCURLYBRACKET = css::awt::Key::RIGHTCURLYBRACKET;
constexpr sal_uInt16 KEY_COLON = css::awt::Key::COLON;
constexpr sal_uInt16 KEY_CAPSLOCK = css::awt::Key::CAPSLOCK;
constexpr sal_uInt16 KEY_NUMLOCK = css::awt::Key::NUMLOCK;
diff --git a/offapi/com/sun/star/awt/Key.idl b/offapi/com/sun/star/awt/Key.idl
index bd236c3..6b19dad 100644
--- a/offapi/com/sun/star/awt/Key.idl
+++ b/offapi/com/sun/star/awt/Key.idl
@@ -369,6 +369,8 @@ published constants Key
/** @since LibreOffice 7.5 **/
const short RIGHTCURLYBRACKET = 1319;
/** @since LibreOffice 7.6 **/
const short COLON = 1320;
/** The following values don't correspond to physical keys on any
keyboard but are used in the macOS implementation of VCL. They
diff --git a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
index cead4fa..d482f91 100644
--- a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
@@ -938,8 +938,7 @@ Ctrl+Shift+e aka E_SHIFT_MOD1 under GTK/IBUS is for some emoji thing
<node oor:name="SEMICOLON_SHIFT_MOD1" oor:op="replace">
<prop oor:name="Command">
<value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US" install:module="macosx">.uno:SpellDialog</value>
<value xml:lang="en-US" install:module="unxwnt">.uno:InsertCurrentTime</value>
<value xml:lang="en-US">.uno:InsertCurrentTime</value>
</prop>
</node>
<node oor:name="F7_MOD1" oor:op="replace">
diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx
index 80045b9..4c9f891 100644
--- a/vcl/osx/salframe.cxx
+++ b/vcl/osx/salframe.cxx
@@ -1080,6 +1080,7 @@ OUString AquaSalFrame::GetKeyName( sal_uInt16 nKeyCode )
aKeyMap[ KEY_SEMICOLON ] = ";";
aKeyMap[ KEY_QUOTERIGHT ] = "'";
aKeyMap[ KEY_RIGHTCURLYBRACKET ] = "}";
aKeyMap[ KEY_COLON ] = ":";
/* yet unmapped KEYCODES:
aKeyMap[ KEY_INSERT ] = OUString( sal_Unicode( ) );
diff --git a/vcl/osx/salmenu.cxx b/vcl/osx/salmenu.cxx
index 60cafca..c7dfc46 100644
--- a/vcl/osx/salmenu.cxx
+++ b/vcl/osx/salmenu.cxx
@@ -652,6 +652,9 @@ void AquaSalMenu::SetAccelerator( unsigned /*nPos*/, SalMenuItem* pSalMenuItem,
case KEY_EQUAL:
nCommandKey='=';
break;
case KEY_COLON:
nCommandKey=':';
break;
case KEY_SEMICOLON:
nCommandKey=';';
break;
diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx
index 554485a..5517584 100644
--- a/vcl/qt5/QtFrame.cxx
+++ b/vcl/qt5/QtFrame.cxx
@@ -961,6 +961,9 @@ OUString QtFrame::GetKeyName(sal_uInt16 nKeyCode)
case KEY_BRACKETRIGHT:
nRetCode = Qt::Key_BracketRight;
break;
case KEY_COLON:
nRetCode = Qt::Key_Colon;
break;
case KEY_SEMICOLON:
nRetCode = Qt::Key_Semicolon;
break;
diff --git a/vcl/qt5/QtWidget.cxx b/vcl/qt5/QtWidget.cxx
index 91d3ac1..cc17cc8 100644
--- a/vcl/qt5/QtWidget.cxx
+++ b/vcl/qt5/QtWidget.cxx
@@ -460,6 +460,9 @@ static sal_uInt16 GetKeyCode(int keyval, Qt::KeyboardModifiers modifiers)
case Qt::Key_BracketRight:
nCode = KEY_BRACKETRIGHT;
break;
case Qt::Key_Colon:
nCode = KEY_COLON;
break;
case Qt::Key_Semicolon:
nCode = KEY_SEMICOLON;
break;
diff --git a/vcl/unx/generic/app/saldisp.cxx b/vcl/unx/generic/app/saldisp.cxx
index 8a2d9dd..f96aba9 100644
--- a/vcl/unx/generic/app/saldisp.cxx
+++ b/vcl/unx/generic/app/saldisp.cxx
@@ -943,6 +943,9 @@ OUString SalDisplay::GetKeyName( sal_uInt16 nKeyCode ) const
case KEY_RIGHTCURLYBRACKET:
aCustomKeyName = "}";
break;
case KEY_COLON:
aCustomKeyName = ":";
break;
default:
nKeySym = 0;
break;
@@ -1293,6 +1296,10 @@ sal_uInt16 SalDisplay::GetKeyCode( KeySym keysym, char*pcPrintable ) const
nKey = KEY_RIGHTCURLYBRACKET;
*pcPrintable = '\'';
break;
case XK_colon:
nKey = KEY_COLON;
*pcPrintable = ':';
break;
// - - - - - - - - - - - - - Apollo - - - - - - - - - - - - - 0x1000
case 0x1000FF02: // apXK_Copy
nKey = KEY_COPY;
diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx
index 5cf87a3..383cf5d 100644
--- a/vcl/unx/gtk3/gtkframe.cxx
+++ b/vcl/unx/gtk3/gtkframe.cxx
@@ -216,6 +216,7 @@ sal_uInt16 GtkSalFrame::GetKeyCode(guint keyval)
case GDK_KEY_semicolon: nCode = KEY_SEMICOLON; break;
case GDK_KEY_quoteright: nCode = KEY_QUOTERIGHT; break;
case GDK_KEY_braceright: nCode = KEY_RIGHTCURLYBRACKET; break;
case GDK_KEY_colon: nCode = KEY_COLON; break;
// some special cases, also see saldisp.cxx
// - - - - - - - - - - - - - Apollo - - - - - - - - - - - - - 0x1000
// These can be found in ap_keysym.h
@@ -2734,6 +2735,7 @@ void GtkSalFrame::KeyCodeToGdkKey(const vcl::KeyCode& rKeyCode,
case KEY_SEMICOLON: nKeyCode = GDK_KEY_semicolon; break;
case KEY_QUOTERIGHT: nKeyCode = GDK_KEY_quoteright; break;
case KEY_RIGHTCURLYBRACKET: nKeyCode = GDK_KEY_braceright; break;
case KEY_COLON: nKeyCode = GDK_KEY_colon; break;
// Special cases
case KEY_COPY: nKeyCode = GDK_KEY_Copy; break;
diff --git a/vcl/win/app/salinst.cxx b/vcl/win/app/salinst.cxx
index 5ba2f9c..3afb38c 100644
--- a/vcl/win/app/salinst.cxx
+++ b/vcl/win/app/salinst.cxx
@@ -235,6 +235,7 @@ void SalData::initKeyCodeMap()
initKey( L';', KEY_SEMICOLON );
initKey( L'\'', KEY_QUOTERIGHT );
initKey( L'}', KEY_RIGHTCURLYBRACKET );
initKey( L':', KEY_COLON );
}
// SalData
diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx
index 638c02e..7b88c3a 100644
--- a/vcl/win/window/salframe.cxx
+++ b/vcl/win/window/salframe.cxx
@@ -2519,6 +2519,9 @@ OUString WinSalFrame::GetKeyName( sal_uInt16 nKeyCode )
case KEY_EQUAL:
cSVCode = '=';
break;
case KEY_COLON:
cSVCode = ':';
break;
case KEY_SEMICOLON:
cSVCode = ';';
break;