summaryrefslogtreecommitdiff
path: root/gtk2_ardour/lv2_plugin_ui.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/lv2_plugin_ui.cc')
-rw-r--r--gtk2_ardour/lv2_plugin_ui.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/gtk2_ardour/lv2_plugin_ui.cc b/gtk2_ardour/lv2_plugin_ui.cc
index 3a64a830d1..8e57eeed60 100644
--- a/gtk2_ardour/lv2_plugin_ui.cc
+++ b/gtk2_ardour/lv2_plugin_ui.cc
@@ -341,6 +341,8 @@ LV2PluginUI::lv2ui_instantiate(const std::string& title)
container->add(*Gtk::manage(Glib::wrap(c_widget)));
}
container->show_all();
+ gtk_widget_set_can_focus(c_widget, true);
+ gtk_widget_grab_focus(c_widget);
} else {
_external_ui_ptr = (struct lv2_external_ui*)GET_WIDGET(_inst);
}
@@ -369,6 +371,15 @@ LV2PluginUI::lv2ui_instantiate(const std::string& title)
}
void
+LV2PluginUI::grab_focus()
+{
+ if (_inst && !_lv2->is_external_ui()) {
+ GtkWidget* c_widget = (GtkWidget*)GET_WIDGET(_inst);
+ gtk_widget_grab_focus(c_widget);
+ }
+}
+
+void
LV2PluginUI::lv2ui_free()
{
stop_updating (0);