scale MUI on window resize
This commit is contained in:
parent
56d0ffc1fd
commit
9b1a254553
|
@ -566,6 +566,7 @@ export function dragElement(elmnt) {
|
|||
|
||||
containerAspectRatio = null;
|
||||
imageAspectRatio = null;
|
||||
$(window).off('mouseup');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -2996,13 +2996,20 @@ $(document).ready(() => {
|
|||
});
|
||||
|
||||
const reportZoomLevelDebounced = debounce(() => {
|
||||
const zoomLevel = Number(window.devicePixelRatio).toFixed(2);
|
||||
const zoomLevel = Number(window.devicePixelRatio).toFixed(2) || 1;
|
||||
const winWidth = window.innerWidth;
|
||||
const winHeight = window.innerHeight;
|
||||
console.debug(`Zoom: ${zoomLevel}, X:${winWidth}, Y:${winHeight}`);
|
||||
const originalWidth = winWidth * zoomLevel;
|
||||
const originalHeight = winHeight * zoomLevel;
|
||||
console.debug(`Zoom: ${zoomLevel}, X:${winWidth}, Y:${winHeight}, original: ${originalWidth}x${originalHeight} `);
|
||||
return zoomLevel;
|
||||
});
|
||||
|
||||
var coreTruthWinWidth = window.innerWidth;
|
||||
var coreTruthWinHeight = window.innerHeight;
|
||||
|
||||
$(window).on('resize', async () => {
|
||||
console.log(`Window resize: ${coreTruthWinWidth}x${coreTruthWinHeight} -> ${window.innerWidth}x${window.innerHeight}`)
|
||||
adjustAutocompleteDebounced();
|
||||
setHotswapsDebounced();
|
||||
|
||||
|
@ -3012,9 +3019,54 @@ $(document).ready(() => {
|
|||
|
||||
reportZoomLevelDebounced();
|
||||
|
||||
//attempt to scale movingUI elements naturally across window resizing/zooms
|
||||
//this will still break if the zoom level causes mobile styles to come into play.
|
||||
const scaleY = Number(window.innerHeight / coreTruthWinHeight).toFixed(4);
|
||||
const scaleX = Number(window.innerWidth / coreTruthWinWidth).toFixed(4);
|
||||
|
||||
if (Object.keys(power_user.movingUIState).length > 0) {
|
||||
resetMovablePanels('resize');
|
||||
for (var elmntName of Object.keys(power_user.movingUIState)) {
|
||||
var elmntState = power_user.movingUIState[elmntName];
|
||||
var oldHeight = elmntState.height;
|
||||
var oldWidth = elmntState.width;
|
||||
var oldLeft = elmntState.left;
|
||||
var oldTop = elmntState.top;
|
||||
var oldBottom = elmntState.bottom;
|
||||
var oldRight = elmntState.right;
|
||||
var newHeight, newWidth, newTop, newBottom, newLeft, newRight;
|
||||
|
||||
newHeight = Number(oldHeight * scaleY).toFixed(0);
|
||||
newWidth = Number(oldWidth * scaleX).toFixed(0);
|
||||
newLeft = Number(oldLeft * scaleX).toFixed(0);
|
||||
newTop = Number(oldTop * scaleY).toFixed(0);
|
||||
newBottom = Number(oldBottom * scaleY).toFixed(0);
|
||||
newRight = Number(oldRight * scaleX).toFixed(0);
|
||||
try {
|
||||
var elmnt = $('#' + $.escapeSelector(elmntName));
|
||||
if (elmnt.length) {
|
||||
console.log(`scaling ${elmntName} by ${scaleX}x${scaleY} to ${newWidth}x${newHeight}`);
|
||||
elmnt.css('height', newHeight);
|
||||
elmnt.css('width', newWidth);
|
||||
elmnt.css('inset', `${newTop}px ${newRight}px ${newBottom}px ${newLeft}px`);
|
||||
power_user.movingUIState[elmntName].height = newHeight;
|
||||
power_user.movingUIState[elmntName].width = newWidth;
|
||||
power_user.movingUIState[elmntName].top = newTop;
|
||||
power_user.movingUIState[elmntName].bottom = newBottom;
|
||||
power_user.movingUIState[elmntName].left = newLeft;
|
||||
power_user.movingUIState[elmntName].right = newRight;
|
||||
} else {
|
||||
console.log(`skipping ${elmntName} because it doesn't exist in the DOM`);
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(`error occurred while processing ${elmntName}: ${err}`);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log('aborting MUI reset', Object.keys(power_user.movingUIState).length)
|
||||
}
|
||||
saveSettingsDebounced();
|
||||
coreTruthWinWidth = window.innerWidth;
|
||||
coreTruthWinHeight = window.innerHeight;
|
||||
});
|
||||
|
||||
// Settings that go to settings.json
|
||||
|
|
Loading…
Reference in New Issue