JUCE icon indicating copy to clipboard operation
JUCE copied to clipboard

[Bug]: New isShowing() function in juce_Windowing_linux.cpp causing numerous issues in Linux builds for 8.0.2

Open astriiddev opened this issue 1 year ago • 0 comments

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

astriiddev avatar Sep 28 '24 03:09 astriiddev