+ if (g_atomic_int_get (&_touching) == 0) {
+ /* this touch has already been stopped (probably by Automatable::transport_stopped),
+ so we've nothing to do.
+ */
+ return;
+ }
+
+ g_atomic_int_set (&_touching, 0);
+
+ if (_state == Touch) {
+
+ if (mark) {
+
+ /* XXX need to mark the last added point with the
+ * current time
+ */
+ }
+ }
+}
+
+/* _before may be owned by the undo stack,
+ * so we have to be careful about doing this.
+ *
+ * ::before () transfers ownership, setting _before to 0
+ */
+void
+AutomationList::clear_history ()
+{
+ delete _before;
+ _before = 0;