Utilize Touchpad Scrolling (vertical & horizontal) on Windows?

I recently started a project that wasn’t a game, but a drawing application. With a mouse, the canvas can be moved by dragging the middle mouse button, but on a laptop, even with the gesture to use three fingers to use the middle mouse button, dragging didn’t work, so the canvas was stuck. Interestingly, using the mouse wheel to scroll worked across both versions seamlessly, with a pinching gesture working as the analog on a touchpad. This prompted me to look into the nature of MouseEvents to see if they can be used to discern different scrolling intentions with a touchpad. Conventionally, dragging two fingers across a touchpad scrolls horizontally, vertically, or both, in the application.
This test sketch prints different states of the MouseEvent e every time the method mouseWheel is invoked:

void setup(){
  size(500, 500, P2D);
void draw(){
  //It doesn't matter what you put here, just make sure draw() exists.
void mouseWheel(MouseEvent e){
  //Modifier output equivalents:
  //0 = vertical scroll
  //1 = horizontal scroll
  //2 = zoom, causes mouseWheel scrolling behavior
  println(millis() + ": " + e.getModifiers() + ", " + e.getCount());
  //millis() is printed to discern identical MouseEvents

It should be noted that I am using Windows Precision drivers with my touchpad. You may get different results using different drivers.
Testing vertical scrolling, horizontal scrolling, and pinching resulted in these respective outputs:

  • Vertical scrolling: modifier = 0, count = 0
  • Horizontal scrolling: modifier = 1, count = 0
  • Pinching: modifier = 1, count = -1 or 1

These outputs are both interesting and disheartening. On one hand, it seems that processing can determine the intention of the scroll using getModifier(), but on the other hand, vertical and horizontal scrolling yields no count output, meaning the direction of the scroll is unknown. Attempting to use other MouseEvent methods is fruitless, as they either remain constant (getAction(), getX(), getY(), getButton(), etc.), or return redundant information (getAmount(), getNative()), giving no further clues to the scrolling direction. Furthermore, any method dealing with the mouse position is useless because the mouse position does not change while scrolling.
If you have any idea how to determine the scroll direction with a touchpad, please leave a comment. For now, my best bet is to use something less surface level to get mouse input in processing.