|
|
@ -51,6 +51,14 @@ Group.prototype._create = function() { |
|
|
|
this.dom.background = document.createElement('div'); |
|
|
|
|
|
|
|
this.dom.axis = document.createElement('div'); |
|
|
|
|
|
|
|
// create a hidden marker to detect when the Timelines container is attached
|
|
|
|
// to the DOM, or the style of a parent of the Timeline is changed from
|
|
|
|
// display:none is changed to visible.
|
|
|
|
this.dom.marker = document.createElement('div'); |
|
|
|
this.dom.marker.style.visibility = 'hidden'; |
|
|
|
this.dom.marker.innerHTML = '?'; |
|
|
|
this.dom.background.appendChild(this.dom.marker); |
|
|
|
}; |
|
|
|
|
|
|
|
/** |
|
|
@ -122,6 +130,20 @@ Group.prototype.repaint = function repaint(range, margin, restack) { |
|
|
|
|
|
|
|
this.visibleItems = this._updateVisibleItems(this.orderedItems, this.visibleItems, range); |
|
|
|
|
|
|
|
// force recalculation of the height of the items when the marker height changed
|
|
|
|
// (due to the Timeline being attached to the DOM or changed from display:none to visible)
|
|
|
|
var markerHeight = this.dom.marker.clientHeight; |
|
|
|
if (markerHeight != this.lastMarkerHeight) { |
|
|
|
this.lastMarkerHeight = markerHeight; |
|
|
|
|
|
|
|
util.forEach(this.items, function (item) { |
|
|
|
item.dirty = true; |
|
|
|
if (item.displayed) item.repaint(); |
|
|
|
}); |
|
|
|
|
|
|
|
restack = true; |
|
|
|
} |
|
|
|
|
|
|
|
// reposition visible items vertically
|
|
|
|
if (this.itemSet.options.stack) { // TODO: ugly way to access options...
|
|
|
|
stack.stack(this.visibleItems, margin, restack); |
|
|
@ -129,7 +151,6 @@ Group.prototype.repaint = function repaint(range, margin, restack) { |
|
|
|
else { // no stacking
|
|
|
|
stack.nostack(this.visibleItems, margin); |
|
|
|
} |
|
|
|
this.stackDirty = false; |
|
|
|
for (var i = 0, ii = this.visibleItems.length; i < ii; i++) { |
|
|
|
var item = this.visibleItems[i]; |
|
|
|
item.repositionY(); |
|
|
|