You can't change size in a ResizeObserver. So do what we do in montage, just add the affected element to an array and deal with it in an interval
parent
689881d105
commit
c9aa03dc55
|
@ -10,6 +10,7 @@ var filterQuery = '&filter[Query][terms][0][attr]=MonitorId&filter[Query][terms]
|
||||||
var idle = 0;
|
var idle = 0;
|
||||||
var monitorStream = false; /* Stream is not started */
|
var monitorStream = false; /* Stream is not started */
|
||||||
var currentMonitor;
|
var currentMonitor;
|
||||||
|
var changedMonitors = [];
|
||||||
|
|
||||||
var classSidebarL = 'col-sm-3'; /* id="sidebar" */
|
var classSidebarL = 'col-sm-3'; /* id="sidebar" */
|
||||||
var classSidebarR = 'col-sm-2'; /* id="ptzControls" */
|
var classSidebarR = 'col-sm-2'; /* id="ptzControls" */
|
||||||
|
@ -1063,8 +1064,12 @@ function initPage() {
|
||||||
|
|
||||||
// Creating a ResizeObserver Instance
|
// Creating a ResizeObserver Instance
|
||||||
observer = new ResizeObserver((objResizes) => {
|
observer = new ResizeObserver((objResizes) => {
|
||||||
|
// We can't do the actual resizing in the Observer, it causes a loop. Need to just set a flag and do it in an interval.
|
||||||
objResizes.forEach((obj) => {
|
objResizes.forEach((obj) => {
|
||||||
monitorsSetScale(monitorId);
|
const id = stringToNumber(obj.target.id);
|
||||||
|
if (!changedMonitors.includes(id)) {
|
||||||
|
changedMonitors.push(id);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1073,6 +1078,16 @@ function initPage() {
|
||||||
observer.observe(this);
|
observer.observe(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
setInterval(() => { //Updating GridStack resizeToContent, Scale & Ratio
|
||||||
|
if (changedMonitors.length > 0) {
|
||||||
|
changedMonitors.slice().reverse().forEach(function(item, index, object) {
|
||||||
|
const img = document.getElementById('liveStream'+item);
|
||||||
|
changedMonitors.splice(object.length - 1 - index, 1);
|
||||||
|
monitorsSetScale(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
|
||||||
// Event listener for double click
|
// Event listener for double click
|
||||||
//var elStream = document.querySelectorAll('[id ^= "liveStream"], [id ^= "evtStream"]');
|
//var elStream = document.querySelectorAll('[id ^= "liveStream"], [id ^= "evtStream"]');
|
||||||
var elStream = document.querySelectorAll('[id = "wrapperMonitor"]');
|
var elStream = document.querySelectorAll('[id = "wrapperMonitor"]');
|
||||||
|
|
Loading…
Reference in New Issue