Godot: Input.set_mouse_mode (Input.MOUSE_MODE_HIDDEN) oculta el cursor incluso en la ventana cromada

Creado en 5 may. 2016  ·  3Comentarios  ·  Fuente: godotengine/godot

Sistema operativo o dispositivo:
Windows 10 Pro x64

Descripción del problema (qué sucedió y qué se esperaba):
El uso de Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN) oculta el cursor del sistema no solo dentro del área del cliente donde se muestra el juego, sino que también lo oculta en la parte superior de la ventana chrome / border / frame / non-client area. Esto hace que sea difícil presionar los botones de minimizar / maximizar / cerrar. Quizás esto se pueda optimizar.

bug windows core

Comentario más útil

Se ha hecho algún progreso aquí en mi bifurcación: https://github.com/mattiascibien/godot/tree/hide-cursor-fix

Todos 3 comentarios

No puedo reproducir esto en Linux X11, así que asumiré que es un error en el código de la plataforma de Windows.

Supongo que el problema reside en la llamada al Win32API ShowCursor(p_mode==MOUSE_MODE_VISIBLE); que en realidad oculta el cursor globalmente y no solo para el área del cliente.

Parece que para ocultar el cursor se debe hacer una llamada a SetCursor(NULL) . Esta función también devuelve el último cursor que se usó cuando se llamó, así que supongo que podemos mantenerlo en una variable para restaurarlo más tarde con SetCursor(old_cursor) .

No sé cómo se comportará esto en pantalla completa.

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

EDITAR: según esto , parece que setcursor debe realizarse dentro del bucle de mensaje de la ventana.

EDIT2: lo que creo que deberíamos hacer es usar el bucle OS_Windows :: WndProc para ocultarlo y mostrarlo con este caso. Estoy pensando en soluciones. Tan pronto como se me ocurra uno, los mantendré informados.

Se ha hecho algún progreso aquí en mi bifurcación: https://github.com/mattiascibien/godot/tree/hide-cursor-fix

¿Fue útil esta página
0 / 5 - 0 calificaciones