Fix some issues with clicking touch buttons using the mouse after the hover change.

Increase a buffer size.
This commit is contained in:
Henrik Rydgård 2024-11-22 10:26:48 +01:00
parent 305453b52d
commit 107bd01536
2 changed files with 14 additions and 10 deletions

View File

@ -122,7 +122,7 @@ bool Buffer::ReadAllWithProgress(int fd, int knownSize, RequestProgress *progres
}
int Buffer::Read(int fd, size_t sz) {
char buf[1024];
char buf[4096];
int retval;
size_t received = 0;
while ((retval = recv(fd, buf, std::min(sz, sizeof(buf)), MSG_NOSIGNAL)) > 0) {

View File

@ -107,11 +107,13 @@ bool MultiTouchButton::Touch(const TouchInput &input) {
usedPointerMask |= 1 << input.id;
}
if (input.flags & TOUCH_MOVE) {
if (!(input.flags & TOUCH_MOUSE) || input.buttons) {
if (bounds_.Contains(input.x, input.y) && !(analogPointerMask & (1 << input.id)))
pointerDownMask_ |= 1 << input.id;
else
pointerDownMask_ &= ~(1 << input.id);
}
}
if (input.flags & TOUCH_UP) {
pointerDownMask_ &= ~(1 << input.id);
usedPointerMask &= ~(1 << input.id);
@ -291,6 +293,7 @@ bool PSPDpad::Touch(const TouchInput &input) {
}
}
if (input.flags & TOUCH_MOVE) {
if (!(input.flags & TOUCH_MOUSE) || input.buttons) {
if (dragPointerId_ == -1 && bounds_.Contains(input.x, input.y) && !(analogPointerMask & (1 << input.id))) {
dragPointerId_ = input.id;
}
@ -298,6 +301,7 @@ bool PSPDpad::Touch(const TouchInput &input) {
ProcessTouch(input.x, input.y, true);
}
}
}
if (input.flags & TOUCH_UP) {
if (input.id == dragPointerId_) {
dragPointerId_ = -1;