diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/processor_box.cc | 9 | ||||
-rw-r--r-- | gtk2_ardour/processor_box.h | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index ff67923935..f095896f40 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -103,6 +103,7 @@ static const uint32_t midi_port_color = 0x960909FF; //Red ProcessorEntry::ProcessorEntry (ProcessorBox* parent, boost::shared_ptr<Processor> p, Width w) : _button (ArdourButton::led_default_elements) , _position (PreFader) + , _selectable(true) , _parent (parent) , _processor (p) , _width (w) @@ -1753,6 +1754,7 @@ ProcessorBox::add_processor_to_display (boost::weak_ptr<Processor> p) } boost::shared_ptr<PluginInsert> plugin_insert = boost::dynamic_pointer_cast<PluginInsert> (processor); + ProcessorEntry* e = 0; if (plugin_insert) { e = new PluginInsertProcessorEntry (this, plugin_insert, _width); @@ -1760,6 +1762,13 @@ ProcessorBox::add_processor_to_display (boost::weak_ptr<Processor> p) e = new ProcessorEntry (this, processor, _width); } + boost::shared_ptr<Send> send = boost::dynamic_pointer_cast<Send> (processor); + boost::shared_ptr<PortInsert> ext = boost::dynamic_pointer_cast<PortInsert> (processor); + + //faders and meters are not deletable, copy/paste-able, so they shouldn't be selectable + if (!send && !plugin_insert && !ext) + e->set_selectable(false); + /* Set up this entry's state from the GUIObjectState */ XMLNode* proc = entry_gui_object_state (e); if (proc) { diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h index 52ed36a9b2..8caee04006 100644 --- a/gtk2_ardour/processor_box.h +++ b/gtk2_ardour/processor_box.h @@ -119,6 +119,9 @@ public: std::string drag_text () const; void set_visual_state (Gtkmm2ext::VisualState, bool); + bool is_selectable() const {return _selectable;} + void set_selectable(bool s) { _selectable = s; } + enum Position { PreFader, Fader, @@ -149,6 +152,7 @@ protected: virtual void setup_visuals (); private: + bool _selectable; void led_clicked(); void processor_active_changed (); void processor_property_changed (const PBD::PropertyChange&); |