On Wed, 7 Jun 2023 04:57:55 GMT, Tejesh R <t...@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.

So this bug is not reproduced for Canvas? Then probably we should use the code 
similar to Canvas.setGraphicsConfiguration in the WIndow class?

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

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

Reply via email to