Make sure we don't deactivate un-activated plugins or re-activate already activated...
[ardour.git] / gtk2_ardour / plugin_ui.cc
index 154c2fd3cfb000325fbc43a183b58fd3b90e62e9..1f028691cbbbcc7b4c25e5eedd55e8f9c33a8e06 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id$
 */
 
 #include <climits>
@@ -96,6 +95,8 @@ PluginUIWindow::PluginUIWindow (boost::shared_ptr<PluginInsert> insert, bool scr
                _pluginui = pu;
                get_vbox()->add (*pu);
                
+               set_wmclass (X_("ardour_plugin_editor"), "Ardour");
+
                signal_map_event().connect (mem_fun (*pu, &LadspaPluginUI::start_updating));
                signal_unmap_event().connect (mem_fun (*pu, &LadspaPluginUI::stop_updating));
        }
@@ -118,22 +119,27 @@ PluginUIWindow::PluginUIWindow (boost::shared_ptr<PluginInsert> insert, bool scr
 PluginUIWindow::~PluginUIWindow ()
 {
 }
+
 bool
 PluginUIWindow::on_key_press_event (GdkEventKey* event)
 {
-       return PublicEditor::instance().on_key_press_event(event);
+       if (!key_press_focus_accelerator_handler (*this, event)) {
+               return PublicEditor::instance().on_key_press_event(event);
+       } else {
+               return true;
+       }
 }
 
 bool
 PluginUIWindow::on_key_release_event (GdkEventKey* event)
 {
-       return PublicEditor::instance().on_key_release_event(event);
+       return true;
 }
 
 void
-PluginUIWindow::plugin_going_away (ARDOUR::Redirect* ignored)
+PluginUIWindow::plugin_going_away ()
 {
-       ENSURE_GUI_THREAD(bind (mem_fun(*this, &PluginUIWindow::plugin_going_away), ignored));
+       ENSURE_GUI_THREAD(mem_fun(*this, &PluginUIWindow::plugin_going_away));
        
        _pluginui->stop_updating(0);
        delete_when_idle (this);