The change signal for the active property is emitted whenever the window loses/gains focus, but the value of the active property is always true.
Here's a minimal example to reproduce the problem:
I just noticed the comment in qwindow.cpp
So, by that explanation, it's actually working as intended since subWindow'_s transient parent is _root. I can't recall reading that anywhere in the official documentation. Maybe that can be added?
Also, getting a change signal even though the resulting value is the same seems a bit odd to me. The documentation for Window::requestActivate() says: "Requests the window to be activated, i.e. receive keyboard focus.". But in this example when switched from one window to another, the previous window will obviously lose keyboard focus. But when we check for Window::active it will return true. Maybe I'm missing something about Windows' window API. But it seems confusing to me.