diff --git a/modules/camera/src/vkcv/camera/CameraManager.cpp b/modules/camera/src/vkcv/camera/CameraManager.cpp index 497278292e9bf1626c9e766fd9bd96a7c5cecaff..d539994dc0071dd52764477a86ff202955c1b8f3 100644 --- a/modules/camera/src/vkcv/camera/CameraManager.cpp +++ b/modules/camera/src/vkcv/camera/CameraManager.cpp @@ -20,6 +20,7 @@ namespace vkcv::camera { m_window.e_mouseScroll.remove(m_mouseScrollHandle); m_window.e_mouseButton.remove(m_mouseButtonHandle); m_window.e_resize.remove(m_resizeHandle); + m_window.e_gamepad.remove(m_gamepadHandle); } void CameraManager::bindCameraToEvents() { diff --git a/src/vkcv/Window.cpp b/src/vkcv/Window.cpp index 36c105654dd1ac0263c769be9b01083ce39b4d41..bca207443e4462405229bfd502adbacaee9e37e8 100644 --- a/src/vkcv/Window.cpp +++ b/src/vkcv/Window.cpp @@ -119,7 +119,8 @@ namespace vkcv { void Window::onGamepadEvent(int gamepadIndex) { auto window = static_cast<Window *>(glfwGetJoystickUserPointer(gamepadIndex)); - if (glfwJoystickPresent(gamepadIndex)) { + + if ( window != nullptr && glfwJoystickPresent(gamepadIndex)) { window->e_gamepad(gamepadIndex); } }