Hi,
void cTimer::CalcMargins(int &MarginStart, int &MarginStop, const cEvent *Event)
verkleinert die Margins, um eine 100%ige Überlappung mit nachbar Events auszuschließen.
Vorschlag: Die Margins werden nur dann verkleinert, wenn die Länge des nachbar Event >= Länge des Events des Timers ist.
Das sollte genügen, um das Ziel zu erreichen: Falls bei der Zuordnung von Events zu Timern mehrere Events zu 100% überlappen, wird ja das längste gewählt.
~ Markus