diff --git a/modules/cefwebgui/cefwebguimodule.cpp b/modules/cefwebgui/cefwebguimodule.cpp index 13b0fcca69..71a9e4531c 100644 --- a/modules/cefwebgui/cefwebguimodule.cpp +++ b/modules/cefwebgui/cefwebguimodule.cpp @@ -91,7 +91,9 @@ void CefWebGuiModule::startOrStopGui() { _instance->initialize(); _instance->loadUrl(_url); } - webBrowserModule->attachEventHandler(_instance.get()); + if (_visible) { + webBrowserModule->attachEventHandler(_instance.get()); + } webBrowserModule->addBrowser(_instance.get()); } else if (_instance) { _instance->close(true); @@ -121,6 +123,14 @@ void CefWebGuiModule::internalInitialize(const ghoul::Dictionary& configuration) } }); + _visible.onChange([this, webBrowserModule]() { + if (_visible && _instance) { + webBrowserModule->attachEventHandler(_instance.get()); + } else { + webBrowserModule->detachEventHandler(); + } + }); + _url = configuration.value(GuiUrlInfo.identifier); _enabled = configuration.hasValue(EnabledInfo.identifier) &&