Système d'exploitation ou appareil:
Windows 10 Professionnel x64
Description du problème (ce qui s'est passé et ce qui était attendu):
L'utilisation de Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
masque le curseur système non seulement dans la zone cliente où le jeu est affiché, mais également en haut de la fenêtre chrome / border / frame / zone non client. Cela rend difficile d'appuyer sur les boutons minimiser / maximiser / fermer. Peut-être que cela peut être optimisé.
Je ne peux pas reproduire cela sur Linux X11, donc je suppose que c'est un bogue dans le code de la plate-forme Windows.
Je suppose que le problème réside dans l'appel à Win32API ShowCursor(p_mode==MOUSE_MODE_VISIBLE);
qui cache en fait le curseur globalement et pas seulement pour la zone client.
Il semble que pour masquer le curseur, un appel à SetCursor(NULL)
doit être fait. Cette fonction renvoie également le dernier curseur qui a été utilisé lors de son appel, donc je suppose que nous pouvons le conserver dans une variable pour le restaurer plus tard avec SetCursor(old_cursor)
.
Je ne sais pas comment cela se comportera en plein écran.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms648393 (v = vs.85) .aspx
EDIT: selon cela, il semble que setcursor doit être effectué à l'intérieur de la boucle de message de la fenêtre.
EDIT2: ce que je pense que nous devrions faire est en fait d'utiliser la boucle OS_Windows :: WndProc pour la cacher et la montrer avec ce cas. Je réfléchis à des solutions. Dès que j'en trouverai un, je vous tiendrai au courant.
Quelques progrès ont été faits ici dans mon fork: https://github.com/mattiascibien/godot/tree/hide-cursor-fix
Commentaire le plus utile
Quelques progrès ont été faits ici dans mon fork: https://github.com/mattiascibien/godot/tree/hide-cursor-fix