From 2413bbf04f0a1f543ef94d904c60e2f9ad3aee9a Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 1 Dec 2018 11:25:00 +0100 Subject: [PATCH] Only call XSetInputFocus on viewable windows Fixes crash for bridge-lv2-x11 from CLI Signed-off-by: falkTX --- source/utils/CarlaPluginUI.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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