
When my screens display like this, window frame will return wrong value.
Example:

My screens frame are (0.0, 0.0, 1920.0, 1080.0) and (-337.0, 1080.0, 2560.0, 1440.0),
this window frame should return (0, 0, 920, 436), but it return (0.0, 1440.0, 920.0, 436.0) actually.
1440 seems like my top screen's height, i don't know if it matter.
Update:
Through experiment, i found some rule, when MainScreen size smaller than SubScreen, window's frame will be return x higher than real value (x = SubScreen.height + SubScreen.minY - MainScreen.height). Hope this can help you.
When my screens display like this, window frame will return wrong value.
Example:

My screens frame are
(0.0, 0.0, 1920.0, 1080.0)and(-337.0, 1080.0, 2560.0, 1440.0),this window frame should return
(0, 0, 920, 436), but it return(0.0, 1440.0, 920.0, 436.0)actually.1440 seems like my top screen's height, i don't know if it matter.
Update:
Through experiment, i found some rule, when MainScreen size smaller than SubScreen, window's frame will be return x higher than real value (x = SubScreen.height + SubScreen.minY - MainScreen.height). Hope this can help you.