Weird interaction makes trackpad's zoom not work

Describe the bug
My trackpad has been acting up. Weirdly only the zoom function is affected. The zoom will simply not work in applications sometimes, then I would come to my computer later and it would magically work again. After a lot of digging around, I found out that this is a known issue with the application called Magnets, but only if you have Magnets run on startup. A fix for Magnets is to just put your computer to sleep and wake it back up.

BTT's Snap Areas feature is similar to Magnets, and I have BTT run on startup. So I put my computer to sleep when the issue came up, and like magic, the zoom feature is working again!

Here is a reddit thread where someone mentions the Magnets app issue:

Affected input device (e.g. MacBook Trackpad, Magic Mouse/Trackpad, Touch Bar, etc.):
Magic Trackpad 2, and Wacom Touch

Device information:

  • Type of Mac: iMac Late 2015
  • macOS version: 10.14.1
  • BetterTouchTool version: 2.660

Additional information (e.g. StackTraces, related issues, screenshots, workarounds, etc.):
Putting the Mac to sleep works. I haven't tried not having it launch on restart yet, but I suspect that would also remedy the issue.

I'm having the same issue. Sometimes zoom and back/forward gestures in Safari won't work on the trackpad anymore. I purposefully didn't start BTT for a week and it hasn't happened since then. Now that I've started using BTT again the issue has returned.

To quickly solve it you can go to System Preferences > Trackpad > Untoggle and then Toggle Zoom to fix it.

A fix for this bug would be greatly appreciated. If I can provide any information please let me know :slightly_smiling_face:

Weirdly, I actually tried that fix (multiple times) before the one I suggested, and that solution does not work for me. Hopefully one or the other solution will work for others. In my case it's pretty rough because the fix is only temporary. I have to put my display to sleep multiple times per day to keep my mouse working...

I have this very same issue, sometimes it stops working and putting to sleep and wake up later sometimes seems to fix. Cannot find a specific pattern.

Still happens from time to time, today I tried to turn off the trackpad and turn on again and zoom started to work again.

I've had this happen once too often and got sick of having to open system prefs to fix it. So, I wrote a simple script to toggle pinch to zoom on & off and made it a touchbar button. If it happens again, I can just press the button and it's fixed. Hopefully Apple will fix the issue eventually, but this is a work around for now.

tell application "System Events"
if process "System Preferences" exists then
set wasopen to "Yes"
tell application "System Preferences"
if show all is true then
set curpane to "showall"
set curpane to current pane
end if
end tell
set wasopen to "No"
end if
end tell

tell application "System Preferences"
set current pane to pane ""
end tell
tell application "System Events"
tell process "System Preferences"
click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"
click checkbox 2 of tab group 1 of window "Trackpad"
delay 1
click checkbox 2 of tab group 1 of window "Trackpad"
end tell
end tell
end try

tell application "System Preferences"
if wasopen is "Yes" then
if curpane is "showall" then
set show all to true
reveal curpane
end if
quit prefs
end if
end tell

Same issue, except I know the trigger: connecting/disconnecting an external monitor does it every time...

I didn't have this problem at the time of the original post, though -- it's much more recent for me.

I don't have a touchbar, so I'm considering an Automator script as a quick and dirty fix.


I have had this same issue the past years. You can't pinch-to-zoom, you can't swipe pages (e.g left/right in Safari) and it's a system-wide bug. 2 years ago I discovered BTT is the cause by testing and I found many threads (like the one posted earlier) where this was confirmed by other people (about BTT as well as other apps). I used to restart my Mac prior discovering BTT is the culprit, but considering it still happens several times a day and unticking the System Preferences setting does not always immediately fixes it, I lose a lot of patience and time to this problem.

I have had this same issue on my MacBook Pro 2016 and MacBook Pro 2018. I have not or barely used an external monitor over the past years, that's definitely not the trigger for me, but maybe it's also a trigger.

My 2018 has been having Bridge OS panics the past months, i.e. suddenly shutting down without warning or fix. Two weeks ago the Apple Store suggested it was likely due to my years' old Time Machine-based install, so I erased it and copied a lot of content manually. I ended up with a reset BTT, so I reimported my license and my settings. The pinch-to-zoom problems continued.

Last week I went to Apple again and after seeing my cool Touch Bar and discussing it with the manager they suggested that Bridge OS issues are often related to the Touch Bar and suggested I give it a try without my tweak (BTT). The past seven days my Mac has been crashing more often than ever, so I guess that's good news for BTT. However, the past seven days I have had zero problems with pinch-to-zoom. Zero. Not one as opposed to several times a day.

This issue is the oldest BetterTouchTool bug that I know of. I sent Andreas this Reddit thread about the bug half a year ago, but he did not respond to it at the time.

The most likely suspect is the Snap Areas feature. I'm totally done with this and other issues I'm having with my Mac, so I'll disable window snapping and see if that successfully prevents this issue from happening.


I figured out how to re-set the setting using a system call:

defaults write TrackpadPinch 0
defaults write TrackpadPinch 1

Seems to work for me. Also I attached the thing using Hammerspoon to Cmd+§ using this:

hs.hotkey.bind({"cmd"}, "§", function()'/usr/bin/defaults', function(exit_code, std_out, std_err)'/usr/bin/defaults', function(exit_code, std_out, std_err)
    end, function(exit_code, std_out, std_err)
    end, {'write', '', 'TrackpadPinch', '1'}):start()
  end, function(exit_code, std_out, std_err)
  end, {'write', '', 'TrackpadPinch', '0'}):start()

Now I'm trying to cause the issue again to see if there's any way to identify it.

Best regards,