yuzu-emu
/
yuzu
Archived
1
0
Fork 0

Merge pull request #6277 from german77/touchsetting2

hid: Fix touch not initializing properly if disabled
This commit is contained in:
Morph 2021-05-02 23:25:10 -04:00 committed by GitHub
commit 707ed72a3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

View File

@ -33,7 +33,7 @@ void Controller_Gesture::OnUpdate(const Core::Timing::CoreTiming& core_timing, u
shared_memory.header.timestamp = core_timing.GetCPUTicks(); shared_memory.header.timestamp = core_timing.GetCPUTicks();
shared_memory.header.total_entry_count = 17; shared_memory.header.total_entry_count = 17;
if (!IsControllerActivated() || !Settings::values.touchscreen.enabled) { if (!IsControllerActivated()) {
shared_memory.header.entry_count = 0; shared_memory.header.entry_count = 0;
shared_memory.header.last_entry_index = 0; shared_memory.header.last_entry_index = 0;
return; return;
@ -129,6 +129,10 @@ void Controller_Gesture::OnLoadInputDevices() {
} }
std::optional<std::size_t> Controller_Gesture::GetUnusedFingerID() const { std::optional<std::size_t> Controller_Gesture::GetUnusedFingerID() const {
// Dont assign any touch input to a point if disabled
if (!Settings::values.touchscreen.enabled) {
return std::nullopt;
}
std::size_t first_free_id = 0; std::size_t first_free_id = 0;
while (first_free_id < MAX_POINTS) { while (first_free_id < MAX_POINTS) {
if (!fingers[first_free_id].pressed) { if (!fingers[first_free_id].pressed) {

View File

@ -33,7 +33,7 @@ void Controller_Touchscreen::OnUpdate(const Core::Timing::CoreTiming& core_timin
shared_memory.header.timestamp = core_timing.GetCPUTicks(); shared_memory.header.timestamp = core_timing.GetCPUTicks();
shared_memory.header.total_entry_count = 17; shared_memory.header.total_entry_count = 17;
if (!IsControllerActivated() || !Settings::values.touchscreen.enabled) { if (!IsControllerActivated()) {
shared_memory.header.entry_count = 0; shared_memory.header.entry_count = 0;
shared_memory.header.last_entry_index = 0; shared_memory.header.last_entry_index = 0;
return; return;
@ -105,6 +105,10 @@ void Controller_Touchscreen::OnLoadInputDevices() {
} }
std::optional<std::size_t> Controller_Touchscreen::GetUnusedFingerID() const { std::optional<std::size_t> Controller_Touchscreen::GetUnusedFingerID() const {
// Dont assign any touch input to a finger if disabled
if (!Settings::values.touchscreen.enabled) {
return std::nullopt;
}
std::size_t first_free_id = 0; std::size_t first_free_id = 0;
while (first_free_id < MAX_FINGERS) { while (first_free_id < MAX_FINGERS) {
if (!fingers[first_free_id].pressed) { if (!fingers[first_free_id].pressed) {