オペレーティングシステムまたはデバイス:
Windows 10 Pro x64
問題の説明(何が起こったのか、何が期待されたのか):
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
を使用すると、ゲームが表示されているクライアント領域内だけでなく、ウィンドウのクロム/境界線/フレーム/非クライアント領域の上にもシステムカーソルが非表示になります。 これにより、最小化/最大化/閉じるボタンを押すのが難しくなります。 多分これは最適化することができます。
Linux X11ではこれを再現できないため、Windowsプラットフォームコードのバグであると想定します。
問題は、Win32API ShowCursor(p_mode==MOUSE_MODE_VISIBLE);
の呼び出しにあると思います。これは、クライアント領域だけでなく、実際にはカーソルをグローバルに非表示にします。
カーソルを非表示にするには、 SetCursor(NULL)
呼び出す必要があるようです。 この関数は、呼び出されたときに最後に使用されたカーソルも返すので、後でSetCursor(old_cursor)
を使用して復元するために、変数に保持できると思います。
これがフルスクリーンでどのように動作するかわかりません。
https://msdn.microsoft.com/en-us/library/windows/desktop/ms648393(v = vs.85).aspx
編集:これによると、setcursorはウィンドウメッセージループ内で実行する必要があるようです。
EDIT2:私たちがすべきだと思うのは、実際にOS_Windows :: WndProcループを使用して、この場合は非表示にして表示することです。 私は解決策を考えています。 私がそれを思いついたらすぐに私はあなたを投稿し続けます。
ここで私のフォークでいくつかの進歩がありました: https :
最も参考になるコメント
ここで私のフォークでいくつかの進歩がありました: https :