On Wed, 7 Jun 2023 03:43:45 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

> > > We should check why that code does not work, note the code in that patch 
> > > also support both Window and Canvas.
> > 
> > 
> > We can use `getAppropriateGraphicsConfiguration()` of `XCanvasPeer` class, 
> > which solves the problem. We can use it whenever new screen is set/new 
> > screen GC is set (Not sure of why it wasn't used before). The old code gets 
> > defaultGC whenever screen switch happens. We can use the existing 
> > implementation, which is actually better than selecting TransparencyCapable 
> > GC alone. Their exist a regression for this re-use solution i.e., test 
> > [WindowGCChangeTest.java](https://github.com/openjdk/jdk/blob/master/test/jdk/java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.java),
> >  which is basically windows specific test.
> 
> If think that method should work even before the fix. In the peer we set the 
> GC to some value we found, then call Component.setGraphicsConfiguration() 
> which for canvas and window should call getAppropriateGraphicsConfiguration. 
> Why it does not work?

In Window, GC is set when during initialization, i.e., `initGC()` is called, 
also there is separate `setGraphicsConfiguration() ` method. But unlike 
`Canvas.setGraphicsConfiguration()`, in window 
`getAppropriateGraphicsConfiguration()` is not used. So with Window, unlike 
Canvas setting a GC is quite different and doesn't involve  
`getAppropriateGraphicsConfiguration()` I hope.

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

PR Comment: https://git.openjdk.org/jdk/pull/14246#issuecomment-1579887971

Reply via email to