+/**
+ * Deletes a startup sequence, ignoring whether its timeout has elapsed.
+ * Useful when e.g. a window is moved between workspaces and its children
+ * shouldn't spawn on the original workspace.
+ *
+ */
+void startup_sequence_delete(struct Startup_Sequence *sequence) {
+ assert(sequence != NULL);
+ DLOG("Deleting startup sequence %s, delete_at = %ld, current_time = %ld\n",
+ sequence->id, sequence->delete_at, time(NULL));
+
+ /* Unref the context, will be free()d */
+ sn_launcher_context_unref(sequence->context);
+
+ /* Delete our internal sequence */
+ TAILQ_REMOVE(&startup_sequences, sequence, sequences);
+
+ free(sequence->id);
+ free(sequence->workspace);
+ FREE(sequence);
+}
+