From 298d5e968905c47be7748b6869add035db708dc5 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 12 Jul 2017 20:20:04 -0700 Subject: [PATCH] Qt: Fix input crashes when no game was loaded --- src/platform/qt/GamepadAxisEvent.cpp | 2 +- src/platform/qt/GamepadButtonEvent.cpp | 2 +- src/platform/qt/GamepadHatEvent.cpp | 2 +- src/platform/qt/input/InputController.cpp | 3 +++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/platform/qt/GamepadAxisEvent.cpp b/src/platform/qt/GamepadAxisEvent.cpp index 833e82f3f..f35256097 100644 --- a/src/platform/qt/GamepadAxisEvent.cpp +++ b/src/platform/qt/GamepadAxisEvent.cpp @@ -20,7 +20,7 @@ GamepadAxisEvent::GamepadAxisEvent(int axis, Direction direction, bool isNew, in , m_key(GBA_KEY_NONE) { ignore(); - if (controller) { + if (controller && controller->map()) { m_key = static_cast(mInputMapAxis(controller->map(), type, axis, direction * INT_MAX)); } } diff --git a/src/platform/qt/GamepadButtonEvent.cpp b/src/platform/qt/GamepadButtonEvent.cpp index f789becb6..184dae591 100644 --- a/src/platform/qt/GamepadButtonEvent.cpp +++ b/src/platform/qt/GamepadButtonEvent.cpp @@ -19,7 +19,7 @@ GamepadButtonEvent::GamepadButtonEvent(QEvent::Type pressType, int button, int t , m_key(GBA_KEY_NONE) { ignore(); - if (controller) { + if (controller && controller->map()) { m_key = static_cast(mInputMapKey(controller->map(), type, button)); } } diff --git a/src/platform/qt/GamepadHatEvent.cpp b/src/platform/qt/GamepadHatEvent.cpp index 65c9a633c..6844b63c5 100644 --- a/src/platform/qt/GamepadHatEvent.cpp +++ b/src/platform/qt/GamepadHatEvent.cpp @@ -20,7 +20,7 @@ GamepadHatEvent::GamepadHatEvent(QEvent::Type pressType, int hatId, Direction di , m_key(GBA_KEY_NONE) { ignore(); - if (controller) { + if (controller && controller->map()) { m_key = static_cast(mInputMapHat(controller->map(), type, hatId, direction)); } } diff --git a/src/platform/qt/input/InputController.cpp b/src/platform/qt/input/InputController.cpp index b241f8e1f..cbcd465a7 100644 --- a/src/platform/qt/input/InputController.cpp +++ b/src/platform/qt/input/InputController.cpp @@ -366,6 +366,9 @@ void InputController::updateJoysticks() { } const mInputMap* InputController::map() { + if (!m_activeKeyInfo) { + return nullptr; + } return &m_inputMap; }