Browse Source
Merge pull request #7579 from Morph1984/swkbd-oob-array-access
qt_software_keyboard: Fix out of bounds array access
pull/15/merge
Mai M
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
19 additions and
4 deletions
-
src/yuzu/applets/qt_software_keyboard.cpp
|
|
|
@ -475,11 +475,26 @@ void QtSoftwareKeyboardDialog::open() { |
|
|
|
row = 0; |
|
|
|
column = 0; |
|
|
|
|
|
|
|
const auto* const curr_button = |
|
|
|
keyboard_buttons[static_cast<int>(bottom_osk_index)][row][column]; |
|
|
|
switch (bottom_osk_index) { |
|
|
|
case BottomOSKIndex::LowerCase: |
|
|
|
case BottomOSKIndex::UpperCase: { |
|
|
|
const auto* const curr_button = |
|
|
|
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
|
|
|
|
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())); |
|
|
|
// 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(); |
|
|
|
} |
|
|
|
|