JUCE
                                
                                
                                
                                    JUCE copied to clipboard
                            
                            
                            
                        [Bug]: New isShowing() function in juce_Windowing_linux.cpp causing numerous issues in Linux builds for 8.0.2
Detailed steps on how to reproduce the bug
The new isShowing() function that was added to juce_Windowing_linux.cpp in 8.0.2 is incorrect. Currently, it's
bool isShowing() const override
{
    return XWindowSystem::getInstance()->isMinimised (windowH);
}
An even further look into XWindowSystem::isMinimised() shows that it's just a wrapper for XWindowSystem::isHidden().
This means that isShowing() returns true if the window is hidden and return false if the window is showing!
This is causing numerous issues, from Projucer and AudioPluginHost barely working and frequently crashing in 8.0.2 to plugin builds not being able to grab window focus or close out of with the JUCE titlebar's close button.
Simple solution is to just change it to
bool isShowing() const override
{
    return !XWindowSystem::getInstance()->isMinimised (windowH);
}
This at least fixes a good chunk of the bugs that 8.0.2 has bestowed upon Linux builds
What is the expected behaviour?
isShowing() should return true when window is showing and return false when window is not showing
Operating systems
Linux
What versions of the operating systems?
Ubuntu 24.04.1 LTS/GNOME 46.0
Architectures
64-bit
Stacktrace
No response
Plug-in formats (if applicable)
No response
Plug-in host applications (DAWs) (if applicable)
No response
Testing on the develop branch
The bug is present on the develop branch
Code of Conduct
- [X] I agree to follow the Code of Conduct