Bug 1735071 Comment 19 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

(In reply to Daniel Veditz [:dveditz] from comment #17)
> In the testcase, the original window.open puts the popup on top, and on mac and linux it stays there until the user manually switches to the original testcase window. On windows the first `reportValidity()` call brings that testcase window back up on top which is already a problem (the pop-unders mentioned above). 

Yes, exactly. Showing a popup widget should not bring the owner window to the top.
`nsWindow::Show()` is called on the popup widget to show the validity popup (we behave the same on all platforms), but the z-order of the owner window is also changed on Windows, and move the owner window of the popup widget to the top. Note in such case, that the focus state isn't actually changed at all, i.e. the focus is still on the original window, but we show the unfocus one to the top, and when the user clicks the top one (which doesn't have the focus), then we really move the focus to that window.
(In reply to Daniel Veditz [:dveditz] from comment #17)
> In the testcase, the original window.open puts the popup on top, and on mac and linux it stays there until the user manually switches to the original testcase window. On windows the first `reportValidity()` call brings that testcase window back up on top which is already a problem (the pop-unders mentioned above). 

Yes, exactly. Showing a popup widget should not bring the owner window to the top.
`nsWindow::Show()` is called on the popup widget to show the validity popup (we behave the same on all platforms), but the z-order of the owner window is also changed on Windows, and move the owner window of the popup widget to the top. Note that, in such case, the focus state isn't actually changed at all, i.e. the focus is still on the original window, but we show the unfocus one to the top, and when the user clicks the top one (which doesn't have the focus), then we really move the focus to that window.
(In reply to Daniel Veditz [:dveditz] from comment #17)
> In the testcase, the original window.open puts the popup on top, and on mac and linux it stays there until the user manually switches to the original testcase window. On windows the first `reportValidity()` call brings that testcase window back up on top which is already a problem (the pop-unders mentioned above). 

Yes, exactly. Showing a popup widget should not bring the owner window to the top.
`nsWindow::Show()` is called on the popup widget to show the validity popup (we behave the same on all platforms), but the z-order of the owner window is also changed on Windows, and move the owner window of the popup widget to the top. Note that, in such case, the focus state isn't actually changed at all, i.e. the focus is still on the original window, but we show the unfocused one to the top, and when the user clicks the top one (which doesn't have the focus), then we really move the focus to that window.

Back to Bug 1735071 Comment 19