Hello Alexander (and all other BetterTouchTool Devs),
when setting the trackpad/accessibility macOS system settings to tap-to-click=on & dragging with trackpad=enabled (not using three finger dragging), there is a significant delay between the time I tap on the trackpad and the time MacOS executes the click (I assume something between 0.5 and 0.8 seconds).
This is different from this question here: How can I fix tap-to-click delay with dragging enabled?
I am not considering the release-while-dragging-delay, but the delay after every single click. I think OP in the given threat was also trying to mention that but you, Alexander seemed to have only responded to the release-while-dragging-delay, but not the general delay after every click. Therefore I want to explicitly mention and request a fix for this delay in this threat here.
I know what this delay is for. The routine that registers the tap waits whether a second tap is following and if it should register a double tap. The waiting period seems overly long and is very disrupting to any task that involves a lot of clicking or just even browsing. The OS even allows me to adjust my double click speed, but incomprehensibly, this has no influence in reducing aforementioned delay.
Unfortunately, this is a complete deal breaker in using macOS for me. I'd love if you could implement a feature that would allow the user to customize the time the OS waits after a tap before executing it as a click.
It could be a single setting. It could also be a modification to the double click speed setting so that this setting also shortens the time the OS needs to register a single tap as a click.
To draw the comparison to windows: Windows seems to differentiate just fine between single taps and double taps. After a single tap, there is a tiny tiny delay (I am guessing 50 - 100ms) before executing the click. It also only happens on those GUI elements, where a differentiation between click and double clicks/right clicks makes sense/has significant impact. For example, a single tap on an empty space of another window just to focus it has no delay at all, because a double click/right click in that area would have no effect. But even when there is a delay, it is much shorter than on macOS.
So in my mind, there is no reason for macOS to have this (much) delay. Can we please make a community effort to offer a fix for this in BetterTouchTool?
If you don't have time to implement it, please reach out to me. I might be able to help.
We know that MacOS is able to execute fast clicks from taps. It does so when either disable dragging altogether as well as when three finger dragging is enabled.
So we have two options:
We have to find out how to tell the driver to, on the one hand, process the single click as fast as it does in the aforementioned setting, but on the other hand also provide all the double tap dragging features.
We also disable dragging so we have a fast tap to click, but then recreate all dragging features in BTT. I began doing that already, for example with the 'tap in the draggable region of browser window' condition and so forth, but I still miss double-tap to start highlighting and drag text and so on. How feasible is this?
reimplementing the tap to click manually would be possible but it will also come with delays (If you have a Magic Mouse you can setup left tap to left click in order to see how it would behave with BTT).
However this is really low priority to me, I could maybe bring over the dragging that is implemented in BTT for the Magic Mouse and maybe add some settings for the delays, but it probably will not work as well as the macOS tap to drag.
In the above routine, I assume evrytime a tap event is registered, it interrupts the current routine but retains the previous value of state_first_tap_registered.
This seems pretty straightfoward, there can't be too much delay processing this, right? And if so, it can be taken into account against the user set double click delay.
Again, I'd be happy to help, so that the overpriced paperweight that is currently sitting on my desk is usable again.
there is tons of stuff you need to handle. E.g. accidental tap prevention, single, double,triple, quadruple clicks, dragging events, scroll behavior and much more. But I'll just add an option to allow using BTT's Magic Mouse dragging then you can see whether it works good enough for you.
Andreas, first and foremost thank you for you incredibly rapid response, implementation and delivery. That is very kind.
So I disabled 'tap to click' in the system settings and set it up just like you are showing in the screenshot. Throughout my testings described below, I logged in/out and restarted BTT after every settings changes.
These are my findings:
The BTT 1 Finger Tap on itself works brilliantly rapid. It's as quick as if it was enabled in the system setting (ofc with dragging disabled).
For me, the "Double Tap Delay" slider does not have any influence on the timing of the 1 Finger Tap being recognized as a click: no matter where i put the slider, the 1 Finger Tap is always immediately executed as a click, also regardless of having added a gesture with the Trigger "1 Finger Double Tap" or not.
1 Finger Double Tap is not working. I added a new gesture with the trigger being "1 Finger Double Tap". As action I chose "Start Mouse Drag". In the 'Advanced' Tab of the Trigger, for "Execute named Trigger after release" I chose a custom named Trigger for which I set the action "Stop Mouse Drag". To make sure I can reliable detect the execution of the 1 Finger Double Tap, I added a "Strong Feedback" as haptic feedback.
No Matter what position I put the "Double Tap Delay"-Slider on the 1 Finger Tap setting on, I cannot register a double Tap. On a side note, I later also disabled the BTT 1 Finger Tab again and even later enabled the system Tab-to-click, alternately with and without dragging. I never could get the 1 Finger Double Tap to give me any haptic Feedback, so I deduct BTT never successfully registered it.
What I would like to achieve is the following. Let's say I put the slider on 0,1:
Whenever I tap on the trackpad with one finger, lift the finger off and within the next 100ms, there is not a second tap (nor any other interaction with the trackpad), it should execute a click.
Whenever I tap on the trackpad with 1 finger, lift it off and within the next 100ms, I tap second time with one finger on the trackpad and keep resting the finger on the trackpad, it should start dragging whatever is underneath my cursor at the start of the second tap until I lift that finger off the trackpad again. So I guess in BTT terms, it's more like a tap+touch start within 100ms. If I do not rest the finger on the trackpad after the second tap and instead lift it right off again (effectively having a 1 Finger Double Tap), it should have the following behaviour: If there is a word underneath, it should highlight the word (and after a third Tap the whole line) and if not, it should have the standard "Double click" behaviour that is appropriate (whatever that is in macOS).
there was an issue (due to it being the magic mouse code) that caused it to not work if no magic mouse was connected. Should be solved in the new build
Omg, I cannot describe how happy I am right now! You made my overpriced paperweight into a working computer again! You even fixed the release-from-dragging-delay! Thank you so much!
There is one bug left. It occurs, when I 1 Finger Double Tap + hold (to drag) on the draggable part of a window and try to snap it and the window was not in focus before.
Description:
Let's say I just am focusing window 1. While window 1 is still in focus, I 1 Finger Double Tap + hold (to drag) on the draggable part of windows 2 (without having 1 Finger Single Tapped it first to bring it into focus). What then happens is, I can drag window 2, but if I drag window 2 so far to a side of a screen to let it snap into place (I'm using BTT's snap/tiling), then instead if window 2 snapping, window 2 stays where it is, but instead window 1 snaps to where I wanted window 2 to snap to.
It seems like since I Double Tap the non-focused window 2, the first Tap somehow gets lost regarding the snap (only regarding the snap since the dragging does work) and once I want to snap window 2, somehow BTT thinks I am still moving and trying to snap window 1. Is my explanation understandable?