This site is currently in read-only mode during migration to a new platform.
You cannot post questions, answers or comments, as they would be lost during the migration otherwise.
+2 votes

I'm just getting started with Godot and want to make sure there isn't some important setting I'm missing before I file a bug report. I'm making a 2D game, and when my project is set to fullscreen mode, neither the system cursor nor a custom cursor set in the Project Settings will show up. However, if I set the project to windowed mode without changing any other settings, both types of cursor work as expected. I'm using Godot 3.1.2 on 64-bit Windows 10. I tried both GLES3 and GLES2, and the problem happens in both rendering engines. I checked Input.get_mouse_mode(), and it is already set to MOUSE_MODE_VISIBLE at all times. Is there any setting I don't know about to ensure that the mouse's visibility survives the transition to fullscreen?

in Engine by (23 points)

I'm not able to reproduce this in 3.1.2 64-bit Windows 10. Are you having the problem in 3.1.1? Can you share your project?

Apologies for taking so long to respond. I believe I've solved it (see below), but to answer your question: I haven't used 3.1.1, but I had the same problem in 3.1.0, even on a blank project. Updating to 3.1.2 was one of the steps I took while attempting to fix it.

5 Answers

+1 vote
Best answer

I think I figured it out! I have f.lux installed, which tints the entire screen to reduce the amount of blue light it emits at night. The method that f.lux uses to tint the screen doesn't affect the mouse cursor, so the cursor looks brighter and slightly bluer than everything else on the screen- it can be pretty annoying.

In the settings for f.lux, there is an option to fix this problem labeled "Software mouse cursor when needed (fixes 'white cursor')". I assume that this option is implemented by hiding the system cursor and replacing it with a lookalike "cursor" controlled by f.lux that can be properly rendered behind the tint layer, rather than on top of it.

I'm guessing that f.lux's software cursor renders behind Godot's fullscreen layer. Disabling the software cursor allows both the system cursor and custom cursors to be visible in fullscreen Godot projects, though sadly, neither are affected by f.lux's tint.

This seems likely to be an edge case that the devs just haven't considered before, but just in case: are there any Windows users who have f.lux installed, and can see the cursor in fullscreen even when the software cursor is enabled and the screen is tinted? If not, I guess it would be best for me to submit compatibility with the f.lux software cursor as a feature request, rather than a bug report.

by (23 points)
selected by

I know this is a bit of an old question, but I test f.lux with the latest version of Godot 3.2.1, and with colors set to warm and the cursor set to software, it worked fine with the cursor displaying like it should.

What I did find though was that if you enable "Display pointer trails" in the mouse settings in Windows 10, the cursor vanishes in any fullscreen game. I've added a ticket for it here.

Why anyone would want to enable pointer trails to begin with is beyond me, as it's just super annoying, but I guess we can't control what the people do with their Windows settings. :)

0 votes

Hi, i have the same problem, the cursor does not appear if the game is in fullscreen and it has the focus.
If I click on another application which is on my other screen (i have 2 screens), and I move my mouse towards the window of my game without click, the cursor appears.
If i click on my game and give it the focus, the cursor disappears again.
I confirm in windowed mode the problem does not exist.

The code

extends Control

# variables
var cursor_custom = load("res://images/cursor.png")

# Called when the node enters the scene tree for the first time
func _ready():
    # Set a Custom cursor

Project parameters
Display-> Window fullscreen checked, stretch in viewport, keep, 1

Windows 10, 2 screens

by (18 points)
0 votes

I just fixed this. Go to your windows mouse settings, then pointer.. then clear all boxes. Uncheck all until the mouse cursor is stock.

by (14 points)
0 votes

It doesn't work for me
Even if I just put a custom image in the parameters of the project (without scripts), that does not work. Just uncheck full screen and it works, it's not a normal behavior.

by (18 points)
0 votes

Maybe it's too late to answer but anyway maybe it would help anybody who has the same problem. In my case, I had Windows magnifier turned on which killed mouse visibility in fullscreen mode in Godot. So, check it out.

by (14 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.