On Thu, 23 Jan 2025 22:29:22 GMT, anass baya <[email protected]> wrote:
>> Screen number 0 is not always the primary screen, so we’ve removed the code
>> that assumes it is.
>>
>> We used an existing test and took the following considerations into account
>> for Windows:
>>
>> - On Windows, undecorated maximized frames are placed over the taskbar.
>> - On Windows, the top-left corner of an undecorated maximized frame may have
>> negative coordinates (x, y).
>> - Consider the fractional part after scaling.
>
> anass baya has updated the pull request incrementally with one additional
> commit since the last revision:
>
> Update copyright
src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp line 1940:
> 1938: {
> 1939: MONITORINFO *miInfo =
> AwtWin32GraphicsDevice::GetMonitorInfo(screenNum);
> 1940: if (miInfo) {
Based on
[GetMonitorInfo](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getmonitorinfoa)
API doc, it seems fine to use this API to query monitor info for both primary
and non-primary monitors but I'm not sure why original code used
`SystemParametersInfo()` specifically instead of `GetMonitorInfo()` for
primary monitor.
In case the screen insets need to be calculated differently for primary and
non-primary then MonitorInfo (`miInfo.dwFlag`) can be used to check if it is
primary monitor or not, instead of relying on screen number as follows
MONITORINFO *miInfo = AwtWin32GraphicsDevice::GetMonitorInfo(screenNum);
if (MONITORINFOF_PRIMARY & miInfo ->dwFlags) {
// calculate screen insets for Primary monitor
}
else {
//calculate screen insets for NON-Primary monitor
}
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23183#discussion_r1927818392