Increase sensitivity when pinch zooming. Now it is way too slow

Hi, zooming is something i use veeeery often.
Penpot has very slow and annoying zoom (i’m using pinch gesture on macbook trackpad)

My maximum deltaY for a single zoom-in pinch gesture is 92-96.

App Zoom change per single pinch Change percentage
Figma 50% → 181% 262 %
Penpot 46% → 79% 72%

penpot
figma

 el.addEventListener("wheel", wheelHandler)
 
 let distance = 0 
 function wheelHandler (ev) {
 if (event.ctrlKey) {
 	console.log("Scale", ev.deltaY)
 	distance += ev.deltaY
        document.getElementById("result").textContent=`Total Event.deltaY = ${distance}`;
 }

I made a script to increase the speed of pinch-zoom and pan. Could be used as a workaround:

// Script to ajust trackpad speed for zoom(pinch gesture) and pan(2 finger pan) 
// in penpot. Primarily for apple trackpads. 

/* HOW TO USE */
// 1. Install browser extesion for injecting custom js. 
//    For example: https://chromewebstore.google.com/detail/code-injector/edkcmfocepnifkbnbkmlcmegedeikdeb
// 2. inject this script to https://design.penpot.app using browser extension


/* SETTINGS */
// Change multipliers if needed
const panMultiplier = 1.3; // recommend 1.3
const zoomMultiplier = 2.2; // recommend 2.2

/* SCRIPT */
const app = document.getElementById("app");
document.body.addEventListener("wheel", simulateWheel);

function simulateWheel(ev) {
  if (ev.srcElement !== app) {
    const simEvent = new WheelEvent("wheel", {
      bubbles: ev.bubbles,
      cancelable: ev.cancelable,
      composed: ev.composed,
      ctrlKey: ev.ctrlKey,
      altKey: ev.altKey,
      shiftKey: ev.shiftKey,
      clientX: ev.clientX,
      clientY: ev.clientY,
      deltaX: ev.ctrlKey
        ? ev.deltaX * zoomMultiplier
        : ev.deltaX * panMultiplier,
      deltaY: ev.ctrlKey
        ? ev.deltaY * zoomMultiplier
        : ev.deltaY * panMultiplier,
    });
    Object.defineProperty(simEvent, "target", { value: ev.target });
    app.dispatchEvent(simEvent);
  }
}

Well, now zoom and pan working as needed

1 Like

jeez, thank you! this type of stuff can really make or break a product as people get used to a certain feel. especially given this is likely the most used interaction. moving objects is a little slow still compared to figma

You can increase multiplicators in the provided script for tailored experience.
But as for moving objects - I believe it is 1:1 to your pointer speed and in figma also. Probably that is just because a penpot is more laggy than figma, so it feels like slower

Is moving objects in figma faster than your usual pointer speed?

Actually, you’re right regarding the speed, it does match the pointer. It almost feels like Figma has some kind of smoothing like v-sync that makes it feel a bit smoother.

Thanks for the fix regarding the panning speed though!