[quote]glutIdleFunc is called when the canvas isn’t visible, instead of the normal update function, correct?
[/quote]
Not exactly 
Here is an extract from glut specs :
[quote]glutIdleFunc sets the global idle callback to be func so a GLUT program can perform background processing
tasks or continuous animation when window system events are not being received. If enabled, the idle
callback is continuously called when events are not being received.
The amount of computation and rendering done in an idle callback should be minimized to avoid affecting
the programs interactive response. In general, not more than a single frame of rendering should be done in an
idle callback.
Passing NULL to glutIdleFunc disables the generation of the idle callback.
[/quote]
In the red book, glutIdleFunc is used with glutPostRedisplay to spin a square when a mouse event is fired.
My problem is that all the jogl examples I’ve seen so far use the Animator class to handle redisplay. But in that specific case, I would need to make explicit calls to the display() function. Would it be possible to stop the Animator when the event is fired and update the display manually ?