void push(MouseWheelEvent event) {
      if (event.getScrollType() == MouseWheelEvent.WHEEL_BLOCK_SCROLL) {
        myBrowser.sendMouseWheelEvent(event);
        return;
      }

      Composition composition = event.isShiftDown() ? myCompositionX : myCompositionY;
      if (composition.lastEvent != null && !areHomogenous(composition.lastEvent, event)) {
        commit(composition);
        return;
      }

      if (composition.lastEvent == null) {
        composition.myAlarm.addRequest(() -> commit(composition), TIMEOUT_MS);
      }

      composition.pendingScrollAmount += event.getScrollAmount();
      composition.pendingPreciseWheelRotation += event.getPreciseWheelRotation();
      composition.pendingClickCount += event.getClickCount();
      composition.lastEvent = event;

      if (Math.abs(composition.pendingPreciseWheelRotation * wheelFactor) > TOLERANCE * myScale) {
        commit(composition);
      }
    }
void push(MouseWheelEvent event)