diff --git a/source/utils/CarlaPluginUI.cpp b/source/utils/CarlaPluginUI.cpp index b911d74b9..1f8301397 100644 --- a/source/utils/CarlaPluginUI.cpp +++ b/source/utils/CarlaPluginUI.cpp @@ -281,9 +281,17 @@ public: CARLA_SAFE_ASSERT_RETURN(fDisplay != nullptr,); CARLA_SAFE_ASSERT_RETURN(fHostWindow != 0,); - XRaiseWindow(fDisplay, fHostWindow); - XSetInputFocus(fDisplay, fHostWindow, RevertToPointerRoot, CurrentTime); - XFlush(fDisplay); + XWindowAttributes wa; + carla_zeroStruct(wa); + + CARLA_SAFE_ASSERT_RETURN(XGetWindowAttributes(fDisplay, fHostWindow, &wa),); + + if (wa.map_state == IsViewable) + { + XRaiseWindow(fDisplay, fHostWindow); + XSetInputFocus(fDisplay, fHostWindow, RevertToPointerRoot, CurrentTime); + XFlush(fDisplay); + } } void setSize(const uint width, const uint height, const bool forceUpdate) override