Posición del mouse con desplazamiento de pantalla en SFML.

Estoy tratando de crear una ubicación de bloque con ajuste a la cuadrícula. Todo funciona, y en mi cabeza esto debería actualizar la posición del mouse en relación con la ventana de cada cuadro, ¿no?

sf::Vector2i position = sf::Mouse::getPosition(window.mywindow);

//get position
int xSnap = (position.x / gridWidth) * gridWidth;
int ySnap = (position.y / gridHeight) * gridHeight;

Pero también tengo desplazamiento de pantalla usando

if (player.playerSprite.getPosition().x + 16 > screenDimensions.x / 2)
        position.x = player.playerSprite.getPosition().x + 16;
    else
        position.x = screenDimensions.x / 2;

    //Y
    if (player.playerSprite.getPosition().y + 16 > screenDimensions.y / 2)
        position.y = player.playerSprite.getPosition().y + 16;
    else
        position.y = screenDimensions.y / 2;

Cuando la pantalla se desplaza en cualquier dirección desde su posición original, no actualiza la posición del mouse, por ejemplo, digamos que el tamaño de la ventana es 800x600, dentro de esa ventana de 800x600 la posición funciona bien, pero digamos que mi sprite se mueve 200px a la derecha (comienza a desplazarse) cuando el objeto sprite llega a la mitad de la pantalla, más allá de la posición original, el objeto que está colocando usando este código aparece 200px a la izquierda del mouse. Lo mismo ocurre con el eje y.

espero que tenga sentido

Respuestas a la pregunta(1)

Su respuesta a la pregunta