Merge pull request #7579 from Morph1984/swkbd-oob-array-access

qt_software_keyboard: Fix out of bounds array access
This commit is contained in:
Mai M 2021-12-14 23:42:07 -05:00 committed by GitHub
commit f0ed11e318
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -475,11 +475,26 @@ void QtSoftwareKeyboardDialog::open() {
row = 0; row = 0;
column = 0; column = 0;
switch (bottom_osk_index) {
case BottomOSKIndex::LowerCase:
case BottomOSKIndex::UpperCase: {
const auto* const curr_button = const auto* const curr_button =
keyboard_buttons[static_cast<int>(bottom_osk_index)][row][column]; keyboard_buttons[static_cast<std::size_t>(bottom_osk_index)][row][column];
// This is a workaround for setFocus() randomly not showing focus in the UI // This is a workaround for setFocus() randomly not showing focus in the UI
QCursor::setPos(curr_button->mapToGlobal(curr_button->rect().center())); QCursor::setPos(curr_button->mapToGlobal(curr_button->rect().center()));
break;
}
case BottomOSKIndex::NumberPad: {
const auto* const curr_button = numberpad_buttons[row][column];
// This is a workaround for setFocus() randomly not showing focus in the UI
QCursor::setPos(curr_button->mapToGlobal(curr_button->rect().center()));
break;
}
default:
break;
}
StartInputThread(); StartInputThread();
} }