+
+bool
+LV2PluginUI::on_window_show(const Glib::ustring& title)
+{
+ //cout << "on_window_show - " << title << endl; flush(cout);
+
+ if (_lv2->is_external_ui()) {
+ if (_external_ui_ptr) {
+ LV2_EXTERNAL_UI_SHOW(_external_ui_ptr);
+ return false;
+ }
+ lv2ui_instantiate(title);
+ if (!_external_ui_ptr) {
+ return false;
+ }
+
+ LV2_EXTERNAL_UI_SHOW(_external_ui_ptr);
+ _screen_update_connection.disconnect();
+ _screen_update_connection = ARDOUR_UI::instance()->RapidScreenUpdate.connect
+ (mem_fun(*this, &LV2PluginUI::output_update));
+ return false;
+ }
+
+ return true;
+}
+
+void
+LV2PluginUI::on_window_hide()
+{
+ //cout << "on_window_hide" << endl; flush(cout);
+
+ if (_external_ui_ptr) {
+ LV2_EXTERNAL_UI_HIDE(_external_ui_ptr);
+ //slv2_ui_instance_get_descriptor(_inst)->cleanup(_inst);
+ //_external_ui_ptr = NULL;
+ //_screen_update_connection.disconnect();
+ }
+}