mirror of https://github.com/acidanthera/audk.git
Change the SimpleTextInEx implementation to return CTRL+C when CTRL and C are both pressed; SimpleTextIn implementation still returns CTRL+3.
Signed-off-by: niruiyu Reviewed-by: qianouyang git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12564 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
608817ad71
commit
7ad45baa7d
|
@ -362,16 +362,6 @@ GopPrivateAddKey (
|
|||
|
||||
GopPrivateAddQ (Private, &Private->QueueForNotify, &KeyData);
|
||||
|
||||
//
|
||||
// Convert Ctrl+[A-Z] to Ctrl+[1-26]
|
||||
//
|
||||
if (Private->LeftCtrl || Private->RightCtrl) {
|
||||
if ((KeyData.Key.UnicodeChar >= L'a') && (KeyData.Key.UnicodeChar <= L'z')) {
|
||||
KeyData.Key.UnicodeChar = (CHAR16)(KeyData.Key.UnicodeChar - L'a' + 1);
|
||||
} else if ((KeyData.Key.UnicodeChar >= L'A') && (KeyData.Key.UnicodeChar <= L'Z')) {
|
||||
KeyData.Key.UnicodeChar = (CHAR16)(KeyData.Key.UnicodeChar - L'A' + 1);
|
||||
}
|
||||
}
|
||||
GopPrivateAddQ (Private, &Private->QueueForRead, &KeyData);
|
||||
|
||||
return EFI_SUCCESS;
|
||||
|
@ -605,6 +595,16 @@ WinNtGopSimpleTextInReadKeyStroke (
|
|||
if (KeyData.Key.ScanCode == SCAN_NULL && KeyData.Key.UnicodeChar == CHAR_NULL) {
|
||||
continue;
|
||||
}
|
||||
//
|
||||
// Convert Ctrl+[A-Z] to Ctrl+[1-26]
|
||||
//
|
||||
if ((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0) {
|
||||
if ((KeyData.Key.UnicodeChar >= L'a') && (KeyData.Key.UnicodeChar <= L'z')) {
|
||||
KeyData.Key.UnicodeChar = (CHAR16) (KeyData.Key.UnicodeChar - L'a' + 1);
|
||||
} else if ((KeyData.Key.UnicodeChar >= L'A') && (KeyData.Key.UnicodeChar <= L'Z')) {
|
||||
KeyData.Key.UnicodeChar = (CHAR16) (KeyData.Key.UnicodeChar - L'A' + 1);
|
||||
}
|
||||
}
|
||||
CopyMem (Key, &KeyData.Key, sizeof (EFI_INPUT_KEY));
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue