В моем расширении Firefox я пытаюсь отслеживать, когда окно фактически является активным окном. Для этого я добавляю в окно следующих двух слушателей:
window.addEventListener("deactivate", function(event) { alert("deactivate"); }, false);
window.addEventListener("activate", function(event) { alert("activate"); }, false);
В основном все работает отлично. Когда я переключаюсь между разными окнами или минимизирую / разворачиваю Firefox, события происходят так, как я и ожидал. Однако оба события также запускаются, когда я перемещаю окно, даже если оно уже активно. Когда я начинаю двигать окно, происходит событие «деактивировать»; когда я прекращаю движение и отпускаю кнопку мыши, происходит событие «активировать». Я понятия не имею, как я могу обнаружить и игнорировать это поведение. Интуитивно понятно, что окно все время активно.
Я пытался проверить, прежде чем обрабатывать событие «деактивировать», нажата ли кнопка мыши. Однако добавление прослушивателя события «click» в окно, похоже, не включает строку заголовка окна. Кто-нибудь знает, как я могу различить «действительно» деактивирование окна и его перемещение? Большое спасибо заранее!