Wrong Mouse.move() output in Arduino Leonardo
I struggled with this too until I realized this


  Parameters
  
  xVal: amount to move along the x-axis - signed char
  
  yVal: amount to move along the y-axis - signed char 
  
  wheel: amount to move scroll wheel - signed char


Note it says signed char.

That means the value you pass to the Mouse.move is a signed 8-bit. (-128 to 127)

My work around is this below:

void moveMouse(int x, int y, int w){
  x = (int)x / 1.59; //Adjust these two values accordingly. I found out that 100, 100 does 
  y = (int)y / 1.58; //not move 100, 100. It moves 159, 158 for me.

  while(x!=0 || y!=0 || w!=0){
    int moveX, moveY, moveW;
    if(x &gt; 0){
      if(x &gt;= 100){
        moveX = 100;
      }else{
        moveX = x;
      }
    }else if (x &lt; 0){
      if(x &lt;= -100){
        moveX = -100;
      }else{
        moveX = x;
      }
    }else{
      moveX = 0;
    }

    if(y &gt; 0){
      if(y &gt;= 100){
        moveY = 100;
      }else{
        moveY = y;
      }
    }else if (y &lt; 0){
      if(y &lt;= -100){
        moveY = -100;
      }else{
        moveY = y;
      }
    }else{
      moveY = 0;
    }

    if(w &gt; 0){
      if(w &gt;= 127){
        moveW = 127;
      }else{
        moveW = w;
      }
    }else if (w &lt; 0){
      if(w &lt;= -128){
        moveW = -128;
      }else{
        moveW = w;
      }
    }else{
      moveW = 0;
    }

    x = x - moveX;
    y = y - moveY;
    w = w - moveW;

    Mouse.move(moveX, moveY, moveW);
  }