Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

210
Vistas
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
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda