qt: Fix Pause key on Linux
This commit is contained in:
@@ -1382,32 +1382,18 @@ void
|
|||||||
MainWindow::keyPressEvent(QKeyEvent *event)
|
MainWindow::keyPressEvent(QKeyEvent *event)
|
||||||
{
|
{
|
||||||
if (send_keyboard_input && !(kbd_req_capture && !mouse_capture)) {
|
if (send_keyboard_input && !(kbd_req_capture && !mouse_capture)) {
|
||||||
// Windows keys in Qt have one-to-one mapping.
|
|
||||||
if (event->key() == Qt::Key_Pause && !keyboard_recv(0x38) && !keyboard_recv(0x138)) {
|
|
||||||
if ((keyboard_recv(0x1D) || keyboard_recv(0x11D))) {
|
|
||||||
keyboard_input(1, 0x46);
|
|
||||||
} else {
|
|
||||||
keyboard_input(0, 0xE1);
|
|
||||||
keyboard_input(0, 0x1D);
|
|
||||||
keyboard_input(0, 0x45);
|
|
||||||
keyboard_input(0, 0xE1);
|
|
||||||
keyboard_input(1, 0x1D);
|
|
||||||
keyboard_input(1, 0x45);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
#ifdef Q_OS_MACOS
|
#ifdef Q_OS_MACOS
|
||||||
processMacKeyboardInput(true, event);
|
processMacKeyboardInput(true, event);
|
||||||
#else
|
#else
|
||||||
auto scan = x11_keycode_to_keysym(event->nativeScanCode());
|
auto scan = x11_keycode_to_keysym(event->nativeScanCode());
|
||||||
if (scan == 0x145) {
|
if (scan == 0x145) {
|
||||||
/* Special case for Pause. */
|
/* Special case for Pause. */
|
||||||
keyboard_input(1, scan & 0xff00);
|
keyboard_input(1, 0xe11d);
|
||||||
scan &= 0x00ff;
|
scan &= 0x00ff;
|
||||||
}
|
}
|
||||||
keyboard_input(1, scan);
|
keyboard_input(1, scan);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ((video_fullscreen > 0) && keyboard_isfsexit()) {
|
if ((video_fullscreen > 0) && keyboard_isfsexit()) {
|
||||||
ui->actionFullscreen->trigger();
|
ui->actionFullscreen->trigger();
|
||||||
@@ -1456,7 +1442,7 @@ MainWindow::keyReleaseEvent(QKeyEvent *event)
|
|||||||
auto scan = x11_keycode_to_keysym(event->nativeScanCode());
|
auto scan = x11_keycode_to_keysym(event->nativeScanCode());
|
||||||
if (scan == 0x145) {
|
if (scan == 0x145) {
|
||||||
/* Special case for Pause. */
|
/* Special case for Pause. */
|
||||||
keyboard_input(0, scan & 0xff00);
|
keyboard_input(0, 0xe11d);
|
||||||
scan &= 0x00ff;
|
scan &= 0x00ff;
|
||||||
}
|
}
|
||||||
keyboard_input(0, scan);
|
keyboard_input(0, scan);
|
||||||
|
Reference in New Issue
Block a user