Swing Timer deja de llamar a actionPerformed () mientras el mouse se mueve dentro de un JFrame

Si muevo el mouse dentro de unjavax.swing.JFrame, eljavax.swing.Timer deja de llamar alactionPerformed() método hasta que el mouse deje de moverse. Solo ocurre cuando muevo el cursor con mi mouse Rocket Kone XTD. Cuando uso mi trackpad, todo está bien.

¿Cómo puedo arreglarlo? Estoy usando macOS Sierra.

Aquí está mi código:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.Timer;

public class Mouse {
    public static void main(String[] args) {
        JFrame frame = new JFrame();

        frame.setSize(500, 500);
        frame.setVisible(true);

        Timer timer = new Timer(10, new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("foo");
            }
        });

        timer.start();
    }
}

Para tener una idea de lo que estoy hablando:

Código que da más detalles:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Mouse {
    public static void main(String[] args) {
        // Note: Swing/AWT GUIs should be started on the EDT!
        // If the problem displayed here, that is first change I'd make to code.
        final JFrame frame = new JFrame();

        frame.setSize(500, 500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

        Timer timer = new Timer(10, new ActionListener() {

            long lastTime = 0;

            @Override
            public void actionPerformed(ActionEvent e) {
                long nowTime = System.currentTimeMillis();
                long difference = nowTime-lastTime;
                lastTime = nowTime;
                Rectangle r = frame.getBounds();
                Point p = MouseInfo.getPointerInfo().getLocation();
                System.out.println(String.format("%1s\t%2s", 
                        difference, r.contains(p)));
            }
        });

        timer.start();
    }
}
Salida:

Si el mouse no se mueve, la salida se ve así: 11 verdadero 13 verdadero 13 verdadero 10 verdadero 12 verdadero 13 verdadero 12 verdadero 13 verdadero 10 verdadero.

Mientras el mouse se mueve (rápido) no hay salida. Cuando el mouse deja de moverse, la salida es: 2406 verdadero (dependiendo de cuánto tiempo moví mi mouse).

Si el mouse se mueve lentamente, la salida se ve así: 17 verdadero 5 verdadero 8 verdadero 16 verdadero 4 verdadero 11 verdadero 16 verdadero 44 verdadero 11 verdadero 28 verdadero 48 verdadero 77 verdadero 11 verdadero 7 verdadero 15 verdadero 8, verdadero 9 verdadero 12 verdadero 24 verdadero 13 verdadero 4 verdadero 12 verdadero 32 verdadero 13 verdadero 8 verdadero 8 verdadero 13 verdadero 10 verdadero 15 verdadero.

Respuestas a la pregunta(1)

Su respuesta a la pregunta