Mouse functions - no mouse coordinates in window int range - only NDC

As far as I know there are three callback functions for tracking mouse.
“basic” function glutMouseFunc(OpenGL_MouseFunction);
"active tracking " function glutMotionFunc(OpenGL_mouse_track_active);
“passive tracking” function gutPassiveMotionFunc(OpenGL_mouse_track_passive);
All give mouse x,y coordinates as int parameters.
However, only gultPassiveMotionFunc detect them as window int coordinates.
glutMouseFunct "returns " button and its state BUT no window int coordinates in expected range - only what appears to be NDC values .
Is that normal ??

What you’ve described is actually impossible. The function given to glutMouseFunc has this signature: void (*func)(int button, int state, int x, int y). Note that it takes the mouse position as ints.

NDC space is defined as the range [-1, 1]. There are exactly 3 int on that range: -1, 0, 1. So unless you’re saying that this callback is only getting one of those three values, what you’re describing is not what is actually happening.

My guess (since you didn’t provide any code) is that your function was declared with float rather than int, you got a compile error that you quieted by forcing a cast, and you’re getting garbage values.

Thanks for confirming my suspicion.
As always, I had a coding error - writing the int values, but not reading them correctly. Fixed by tracking the mouse values in a (common) function for all three callbacks. That way a stupid coding error woudl at least be common to all of them.