diff --git a/include/app/PortWidget.hpp b/include/app/PortWidget.hpp
index e05a5014..8bbd036c 100644
--- a/include/app/PortWidget.hpp
+++ b/include/app/PortWidget.hpp
@@ -39,6 +39,7 @@ struct PortWidget : widget::OpaqueWidget {
void onDragDrop(const DragDropEvent& e) override;
void onDragEnter(const DragEnterEvent& e) override;
void onDragLeave(const DragLeaveEvent& e) override;
+ void onContextDestroy(const ContextDestroyEvent& e) override;
};
diff --git a/res/ComponentLibrary/PlugPort.svg b/res/ComponentLibrary/PlugPort.svg
new file mode 100644
index 00000000..12af8572
--- /dev/null
+++ b/res/ComponentLibrary/PlugPort.svg
@@ -0,0 +1,213 @@
+
+
+
+
diff --git a/src/app/CableWidget.cpp b/src/app/CableWidget.cpp
index da18986d..7a68735d 100644
--- a/src/app/CableWidget.cpp
+++ b/src/app/CableWidget.cpp
@@ -4,6 +4,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -13,12 +14,20 @@ namespace rack {
namespace app {
+struct CableWidget::Internal {
+ std::shared_ptr