> However, since I haven't done much testing on this, I'm not entirely sure that this will work correctly. Expecially for determining the sender of a scroll events there were some issues with the old mechanism. These events contain lots of extra data, including which device sent them! This seems to be a much superior way to solve the problem. I found some hacky ways to extract a driver-level event (IOHIDEvent) from a CGEvent.I can think of some arguments for throwing away the current mechanism, but I don't think they hold up: I expect Apple to fix IOHIDDeviceRegisterInputValueCallback() eventually, before Ventura releases, making the current mechanism work again.And I expect to use it for that, as well. I definitely want to support device-specific features like tilting scroll wheels and gesture buttons at some point though. I'm not sure if I ever want to build completely device specific settings, but we'd definitely need it for that. I do expect to to use the ability to determince which device sent a CGEvent for more things in the future.However I still think it makes sense to leave the current mechanism in place for the following reasons: → So if I understand correctly, the fix would break some internal mechanisms, but that shouldn't make a practical difference to anyone.But if you don't use several mice at the same time on the same computer - which I don't expect anyone does - this shouldn't be an issue either. Some of the state management code (tracking long clicks, double clicks, etc) saves separate state per device. ![]() ![]() But since the app doesn't allow remapping to left click and right click anyways, and any Apple devices I can think of only have left click and right click, this doesn't make a difference. I think the only thing it is used for is filtering button events from Apple Devices. Currently, determining which device sent an event is not essential, so the app will still work fine.I expect that what the fix essentially does is disable this mechanism for determining which device sent an event - thereby removing the dependence on the broken IOHIDDeviceRegisterInputValueCallback() According to this function is currently broken which also breaks Mac Mouse Fix. Currently, Mac Mouse Fix uses the Apple API function IOHIDDeviceRegisterInputValueCallback() to determine which device a CGEvent stems from.Here's an overview of my understanding of the issue: I hope that makes sense for everyone! Let me know if there’s something else I should consider. If Apple don’t fix it, I'm very open to merging fix. I strongly expect Apple will fix IOHIDDeviceRegisterInputValueCallback() before Ventura 1.0 which should make the official Mac Mouse Fix release work correctly again. Hi guys, thanks for contributing! And thanks for posting a fix!
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |