On Thu, 13 Apr 2023 15:28:52 GMT, Maxim Kartashev <mkartas...@openjdk.org> 
wrote:

>> src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java line 881:
>> 
>>> 879:     }
>>> 880: 
>>> 881:     private final Hashtable<GraphicsConfiguration, Insets> 
>>> cachedInsets = new Hashtable<>();
>> 
>> You do not need to create a handcrafted list of gc->insets, but instead, you 
>> can save that information directly in the GC. In that case, each GC should 
>> be added as a listener(DisplayChangedListener) to the SGE. I think the same 
>> should be done for the GD+bounds, see how it is implemented on 
>> macOS(CGraphicsDevice#displayChanged)
>
> I did what you suggested to `X11GraphicsDevice.bounds`; please, take a look.
> 
> As for insets, it is more complicated because they may change without 
> `displayChanged()` being called; this happens when, for example, the size of 
> the dock bar changes. We are notified of the `_NET_WORKAREA` property change 
> for the root window that is not accompanied by the ConfigureNotify event. I'm 
> reluctant to send `displayChanged()` in this case; it seems like an overkill 
> for a change in the work area.

II suggest to check how it works on win/mac, does we trigger displayChanged in 
that case?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13346#discussion_r1167220493

Reply via email to