Sfml: A hidden mouse cursor doesn't re-appear when hovering the title bar

Created on 12 Mar 2019  路  8Comments  路  Source: SFML/SFML

Subject of the issue

A hidden mouse cursor doesn't re-appear when hovering title bar or resize area of a window.

Your environment

Windows 10
git master
Visual Studio 2015

Steps to reproduce

#include <SFML/Window.hpp>
int main()
{
    sf::Window window(sf::VideoMode(400, 300), "Cursor Bug");
    window.setMouseCursorVisible(false);
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        window.display();
    }
}

Expected behavior

Cursor should re-appear when over title bar.

Actual behavior

It doesn't re-appear.

cursorbug2

bug sfml-window windows accepted

All 8 comments

Expected behavior
Cursor should re-appear when over title bar.

What makes you think it should behave this way? Does the documentation say so? Did you notice inconsistencies with other OSes?

From my experience this heavily depends on the individual program/app and isn't consistent at all. I'd at least say it would make sense, since the title bar still reacts to the cursor. How does it look on Linux and MacOS?

On ubuntu, with GNOME, cursor re-appeared on the title bar.

What makes you think it should behave this way? Does the documentation say so? Did you notice inconsistencies with other OSes?

I'll leave the discussion about expected behaviour up to the SFML team. This behaviour/bug didn't occur in a previous version (~2 years ago) and I can't find any docs that notes this new behaviour.

Edit: As a reference SDL makes this behaviour explicit and defaults to letting a hidden cursor appear when interacting with window frame.

Won't be back at work computer until next week but I wonder if setting a blank sf::Cursor will result in the same behaviour, and if not, could be a suitable workaround.

Won't be back at work computer until next week but I wonder if setting a blank sf::Cursor will result in the same behaviour, and if not, could be a suitable workaround.

Okay, so it seems that if you set a sf::Cursor with a blank image, then the default windows cursor does re-appear when hovering the title bar. So that's a workaround for this issue.

I've also attached a patch which fixes this issue, if you deem it a bug.

Cheers

Is this closed by #1570 then?

Fixed with #1570

Was this page helpful?
0 / 5 - 0 ratings