src/macosx/classes/sun/lwawt/LWRepaintArea.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 24,64 **** */ package sun.lwawt; - import sun.awt.RepaintArea; - import java.awt.Component; import java.awt.Graphics; /** * @author Sergey Bylokhov */ final class LWRepaintArea extends RepaintArea { @Override protected void updateComponent(final Component comp, final Graphics g) { if (comp != null) { super.updateComponent(comp, g); ! flushBuffers((LWComponentPeer) comp.getPeer()); } } @Override protected void paintComponent(final Component comp, final Graphics g) { if (comp != null) { ! final LWComponentPeer peer = (LWComponentPeer) comp.getPeer(); if (peer != null) { ! peer.paintPeer(g); } super.paintComponent(comp, g); ! flushBuffers(peer); ! } ! } ! ! private static void flushBuffers(final LWComponentPeer peer) { ! if (peer != null) { ! peer.flushOnscreenGraphics(); } } } --- 24,63 ---- */ package sun.lwawt; import java.awt.Component; import java.awt.Graphics; + import sun.awt.AWTAccessor; + import sun.awt.RepaintArea; + /** + * Emulates appearance of heavyweight components before call of the user code. + * * @author Sergey Bylokhov */ final class LWRepaintArea extends RepaintArea { @Override protected void updateComponent(final Component comp, final Graphics g) { + // We shouldn't paint native component as a result of UPDATE events, + // just flush onscreen back-buffer. if (comp != null) { super.updateComponent(comp, g); ! LWComponentPeer.flushOnscreenGraphics(); } } @Override protected void paintComponent(final Component comp, final Graphics g) { if (comp != null) { ! Object peer = AWTAccessor.getComponentAccessor().getPeer(comp); if (peer != null) { ! ((LWComponentPeer<?, ?>) peer).paintPeer(g); } super.paintComponent(comp, g); ! LWComponentPeer.flushOnscreenGraphics(); } } }