diff --git a/module/apps.js b/module/apps.js index 3cd91387..8847fd21 100644 --- a/module/apps.js +++ b/module/apps.js @@ -203,7 +203,10 @@ let apps = { handle: 0, foldHide: false, delay: 0, + paused: false, + pauseKeyBound: false, remove: () => { + apps.taskmgr.paused = false; apps.taskmgr.loaded = false; window.clearInterval(apps.taskmgr.handle); if (apps.taskmgr.preLoaded == true) { @@ -215,10 +218,35 @@ let apps = { } }, init: () => { + apps.taskmgr.bindPauseKey(); window.setTimeout(() => { $('#win-taskmgr>.menu>list.focs>a')[0].click(); }, 200); }, + bindPauseKey: () => { + if (apps.taskmgr.pauseKeyBound) { + return; + } + + apps.taskmgr._pauseKeyDownHandler = (event) => { + if (event.key == 'Control' && $('.window.taskmgr.foc')[0]) { + apps.taskmgr.paused = true; + } + }; + apps.taskmgr._pauseKeyUpHandler = (event) => { + if (event.key == 'Control') { + apps.taskmgr.paused = false; + } + }; + apps.taskmgr._pauseBlurHandler = () => { + apps.taskmgr.paused = false; + }; + + document.addEventListener('keydown', apps.taskmgr._pauseKeyDownHandler); + document.addEventListener('keyup', apps.taskmgr._pauseKeyUpHandler); + window.addEventListener('blur', apps.taskmgr._pauseBlurHandler); + apps.taskmgr.pauseKeyBound = true; + }, fold: () => { if (!apps.taskmgr.foldHide) { window.setTimeout(() => { @@ -301,6 +329,9 @@ let apps = { apps.taskmgr.performanceLoad(); apps.taskmgr.drawGrids(); apps.taskmgr.handle = window.setInterval(() => { + if (apps.taskmgr.paused) { + return; + } apps.taskmgr.loadProcesses(); apps.taskmgr.generateProcesses(); apps.taskmgr.sort(); @@ -312,6 +343,9 @@ let apps = { } else if (apps.taskmgr.loaded != true && apps.taskmgr.preLoaded != true) { apps.taskmgr.handle = window.setInterval(() => { + if (apps.taskmgr.paused) { + return; + } apps.taskmgr.loadProcesses(); apps.taskmgr.generateProcesses(); apps.taskmgr.sort();