Add ability to hide the cursor
@@ -45,6 +45,7 @@ type Window struct {
bounds pixel.Rect
canvas *Canvas
vsync bool
+ cursorVisible bool
// need to save these to correctly restore a fullscreen window
restore struct {
@@ -291,6 +292,24 @@ func (w *Window) VSync() bool {
return w.vsync
}
+// SetCursorVisible sets the visibility of the mouse cursor inside the window client area
+func (w *Window) SetCursorVisible(visible bool) {
+ w.cursorVisible = visible
+ mainthread.Call(func() {
+ if visible && w.window.GetInputMode(glfw.CursorMode) != glfw.CursorNormal {
+ w.window.SetInputMode(glfw.CursorMode, glfw.CursorNormal)
+ }
+ if !visible && w.window.GetInputMode(glfw.CursorMode) != glfw.CursorHidden {
+ w.window.SetInputMode(glfw.CursorMode, glfw.CursorHidden)
+ }
+ })
+}
+
+// CursorVisible returns the visibility status of the mouse cursor
+func (w *Window) CursorVisible() bool {
+ return w.cursorVisible
+}
+
// Note: must be called inside the main thread.
func (w *Window) begin() {
if currWin != w {
