On Fri, 25 Oct 2024 18:52:24 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:

>> @aivanov-jdk 
>> On macOS, popup is shifted up and does not cover the taskbar even without 
>> SM. 
>> 
>>> The updated test bug6694823.java works correctly on Windows and displays 
>>> its popup over the Windows taskbar — it is expected.
>>> Popup menus in stand-alone apps have their always-on-top flag set to true, 
>>> therefore they can be displayed on top of the taskbar.
>> 
>> On native applications (eg. Word), popup menus don't overlap taskbar when 
>> clicked close to taskbar so do we consider this as expected behavior or the 
>> way it works currently (overlaps the taskbar)?
>
> The pop is shifted up on macOS because `LWCToolkit` returns `false` in 
> `canPopupOverlapTaskBar`:
> 
> https://github.com/openjdk/jdk/blob/36d71735e3554264e8d17f7e0e72999ac639e398/src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java#L900-L902
> 
> On Windows, apps can control the area where they want a popmenu display or 
> exclude an area of the screen. At the same time, Firefox displays its 
> right-click menu over the taskbar if the menu fits when dropped down. A 
> native Win32 app with a menu bar displays popup menus over the taskbar if it 
> fits on the screen; some menus could open upwards if their items don't fit on 
> the screen to display downwards (I attached a screenshot to JBS). Popup menus 
> in Win32 Notepad (the version in Windows 10) displays it's right-click menu 
> over the taskbar if it fits.
> 
> At the same time, right-click menu of a window title never displays over the 
> taskbar, the menu opens upward if it doesn't fit without covering part of the 
> taskbar.
> 
> I'm pretty sure the default return value of `true` from 
> `SunToolkit.canPopupOverlapTaskBar` isn't something that was chosen 
> accidentally.
> 
> Windows applications may avoid showing popup over the taskbar (confining the 
> popups inside the work area, see 
> [`SystemParametersInfoW`](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfow)
>  and `SPI_GETWORKAREA`). We can change the behaviour of the JDK.
> 
> Yet the failure of `bug6694823.java` without the security manager isn't a 
> product bug in my opinion.

Fixed in 
https://github.com/openjdk/jdk/pull/21498/commits/aca9555a0b697bd9829224396a5448c88057009d

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/21498#discussion_r1819180850

Reply via email to