Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

211
Views
La posición de la ventana de la extensión de Chrome devuelta por las API de chrome.windows está desactivada (alrededor de 8 px)

Tengo problemas para determinar en qué monitor (físico) se encuentra una ventana de Chrome. Esta es mi solución actual:

 // This is just for shorter alias type ChrDispInfo = chrome.system.display.DisplayInfo; private async getActiveMonitorAsync(monitors: ChrDispInfo[]) { const currWin = await chrome.windows.getCurrent(); for (let monitor of monitors) { const a = monitor.workArea; if (currWin.left >= a.left && currWin.left <= a.left + a.width && currWin.top >= a.top && currWin.top <= a.top + a.height) { return monitor; } } return monitors.find(q => q.isPrimary) || monitors[0]; }

Sin embargo, noto que no siempre funciona, especialmente cuando una ventana está maximizada o cuando la muevo manualmente cerca del borde superior izquierdo. El valor está fuera de aproximadamente 8px. Por ejemplo, esto es cuando lo coloco en un monitor de 1080x1920 a la izquierda del monitor principal:

 [currWin.left, currWin.top, currWin.width, currWin.height] value: [-1088, -460, 1096, 1888] monitor.workArea value: {height: 1872, left: -1080, top: -452, width: 1080}

Como puede ver, el valor está "apagado" en aproximadamente 8 px. Supongo que esto se debe al borde de la ventana. Estoy ejecutando en Windows 11 Pro.

¿Es una buena solución poner un desplazamiento de 8px? ¿El valor es diferente en diferentes sistemas operativos? ¿Hay alguna buena solución en general?


Actualización: me parece interesante que luego se incluya el número en width y height . Por ejemplo, si quiero configurar una ventana a un cierto tamaño, tengo que poner el desplazamiento de ancho y alto dos veces :

 const BorderSize = 8; async updateWinAsync(window: ChrWin, monArea: chrome.system.display.Bounds, winSetting: Rect) { await chrome.windows.update(window.id, { left: winSetting[0] * monArea.width + monArea.left - BorderSize, top: winSetting[1] * monArea.height + monArea.top - BorderSize, width: winSetting[2] * monArea.width + BorderSize * 2, height: winSetting[3] * monArea.height + BorderSize * 2, state: "normal", }); }
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!