Вы забыли упомянуть, что используете nsIWindowWatcher .
Чтобы окно было модальным, вам нужно указать, какое окно должно быть модальным. Если первый параметр в вашем вызове openWindow()
- null
, наблюдатель окна не будет знать, какое окно открыло диалоговое окно (какое окно необходимо приостановить, пока диалоговое окно не будет закрыто). Другими словами:
watcher.openWindow(mainWin, "chrome://myapp/content/mywindow.xul", "mywindow",
"chrome,centerscreen,all,modal", null);
Или проще:
mainWin.openWindow("chrome://myapp/content/mywindow.xul", "mywindow",
"chrome,centerscreen,all,modal");
См. window.openDialog () .