diff --git a/source/utils/CarlaPluginUI.cpp b/source/utils/CarlaPluginUI.cpp index 11ca59727..0dbac17a1 100644 --- a/source/utils/CarlaPluginUI.cpp +++ b/source/utils/CarlaPluginUI.cpp @@ -256,9 +256,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