node-mac-recorder
Version:
Native macOS screen recording package for Node.js applications
86 lines (71 loc) ⢠3.33 kB
JavaScript
const WindowSelector = require('./window-selector');
async function testDefaultAutoBringToFront() {
console.log('š Default Auto Bring-To-Front Test');
console.log('====================================\n');
const selector = new WindowSelector();
try {
console.log('š Starting window selector with DEFAULT auto bring-to-front...');
console.log('(Auto bring-to-front is now enabled by default)\n');
console.log('š Instructions:');
console.log(' ⢠Move cursor over different windows');
console.log(' ⢠Each window should automatically come to front');
console.log(' ⢠Only the specific window should focus (not whole app)');
console.log(' ⢠Press D to disable auto mode');
console.log(' ⢠Press E to re-enable auto mode');
console.log(' ⢠Press Ctrl+C to exit\n');
let windowCount = 0;
let lastWindowId = null;
selector.on('windowEntered', (window) => {
if (window.id !== lastWindowId) {
windowCount++;
console.log(`[${windowCount}] šÆ WINDOW: ${window.appName} - "${window.title}"`);
console.log(` š Position: (${window.x}, ${window.y})`);
console.log(` š Size: ${window.width} Ć ${window.height}`);
console.log(` š Should auto-focus THIS specific window only!`);
lastWindowId = window.id;
}
});
selector.on('windowLeft', (window) => {
console.log(`šŖ Left: ${window.appName} - "${window.title}"\n`);
});
// Keyboard controls
const readline = require('readline');
readline.emitKeypressEvents(process.stdin);
if (process.stdin.isTTY) {
process.stdin.setRawMode(true);
}
process.stdin.on('keypress', async (str, key) => {
if (key.name === 'd') {
console.log('\nš Disabling auto bring-to-front...');
selector.setBringToFrontEnabled(false);
console.log(' ā
Auto mode OFF - Windows will not auto-focus');
} else if (key.name === 'e') {
console.log('\nš Enabling auto bring-to-front...');
selector.setBringToFrontEnabled(true);
console.log(' ā
Auto mode ON - Windows will auto-focus again');
} else if (key.ctrl && key.name === 'c') {
console.log('\n\nš Stopping...');
console.log(`š Total windows encountered: ${windowCount}`);
await selector.cleanup();
process.exit(0);
}
});
await selector.startSelection();
// Status update every 10 seconds
setInterval(() => {
console.log(`\nā±ļø Status: ${windowCount} windows encountered so far`);
console.log(' (Continue moving cursor over windows to test auto-focus)');
}, 10000);
// Keep running
setInterval(() => {}, 1000);
} catch (error) {
console.error('ā Error:', error.message);
console.error(error.stack);
} finally {
await selector.cleanup();
}
}
if (require.main === module) {
testDefaultAutoBringToFront();
}