Godot: Input.set_mouse_mode (Input.MOUSE_MODE_HIDDEN) verbirgt den Cursor auch auf Fensterchrom

Erstellt am 5. Mai 2016  ·  3Kommentare  ·  Quelle: godotengine/godot

Betriebssystem oder Gerät:
Windows 10 Pro x64

Problembeschreibung (was ist passiert und was wurde erwartet):
Wenn Sie Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) der Systemcursor nicht nur innerhalb des Clientbereichs ausgeblendet, in dem das Spiel angezeigt wird, sondern auch über dem Fenster Chrome / Border / Frame / Nicht-Client-Bereich. Dies macht es schwierig, die Schaltflächen zum Minimieren / Maximieren / Schließen zu drücken. Vielleicht kann dies optimiert werden.

bug windows core

Hilfreichster Kommentar

Hier in meiner Gabel wurden einige Fortschritte erzielt: https://github.com/mattiascibien/godot/tree/hide-cursor-fix

Alle 3 Kommentare

Kann dies unter Linux X11 nicht reproduzieren, daher gehe ich davon aus, dass es sich um einen Fehler im Windows-Plattformcode handelt.

Ich denke, das Problem liegt im Aufruf der Win32API ShowCursor(p_mode==MOUSE_MODE_VISIBLE); die den Cursor tatsächlich global und nicht nur für den Clientbereich verbirgt.

Es scheint, dass zum Ausblenden des Cursors ein Aufruf von SetCursor(NULL) erfolgen muss. Diese Funktion gibt auch den letzten Cursor zurück, der beim Aufruf verwendet wurde. Ich denke, wir können ihn in einer Variablen behalten, um ihn später mit SetCursor(old_cursor) wiederherzustellen.

Ich weiß nicht, wie sich das im Vollbildmodus verhalten wird.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms648393 (v = vs.85) .aspx

BEARBEITEN: Aus diesem Grund scheint es, dass der Setcursor innerhalb der Fenstermeldungsschleife ausgeführt werden muss.

EDIT2: Ich denke, wir sollten die OS_Windows :: WndProc-Schleife tatsächlich verwenden, um sie in diesem Fall auszublenden und anzuzeigen. Ich denke über Lösungen nach. Sobald ich eine gefunden habe, werde ich Sie auf dem Laufenden halten.

Hier in meiner Gabel wurden einige Fortschritte erzielt: https://github.com/mattiascibien/godot/tree/hide-cursor-fix

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen