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

Print this page

        

*** 596,628 **** int newWindowState = isZoomed ? Frame.MAXIMIZED_BOTH : Frame.NORMAL; postWindowStateChangedEvent(newWindowState); } /** ! * Called by the delegate when any part of the window should be repainted. */ ! public void notifyExpose(final int x, final int y, final int w, final int h) { ! // TODO: there's a serious problem with Swing here: it handles ! // the exposition internally, so SwingPaintEventDispatcher always ! // return null from createPaintEvent(). However, we flush the ! // back buffer here unconditionally, so some flickering may appear. ! // A possible solution is to split postPaintEvent() into two parts, ! // and override that part which is only called after if ! // createPaintEvent() returned non-null value and flush the buffer ! // from the overridden method ! flushOnscreenGraphics(); ! repaintPeer(new Rectangle(x, y, w, h)); } /** ! * Called by the delegate when this window is moved/resized by user. ! * There's no notifyReshape() in LWComponentPeer as the only * components which could be resized by user are top-level windows. */ public final void notifyReshape(int x, int y, int w, int h) { ! boolean moved = false; ! boolean resized = false; synchronized (getStateLock()) { moved = (x != sysX) || (y != sysY); resized = (w != sysW) || (h != sysH); sysX = x; sysY = y; --- 596,620 ---- int newWindowState = isZoomed ? Frame.MAXIMIZED_BOTH : Frame.NORMAL; postWindowStateChangedEvent(newWindowState); } /** ! * Called by the {@code PlatformWindow} when any part of the window should ! * be repainted. */ ! public final void notifyExpose(final Rectangle r) { ! repaintPeer(r); } /** ! * Called by the {@code PlatformWindow} when this window is moved/resized by ! * user. There's no notifyReshape() in LWComponentPeer as the only * components which could be resized by user are top-level windows. */ public final void notifyReshape(int x, int y, int w, int h) { ! final boolean moved; ! final boolean resized; synchronized (getStateLock()) { moved = (x != sysX) || (y != sysY); resized = (w != sysW) || (h != sysH); sysX = x; sysY = y;
*** 642,657 **** if (resized) { replaceSurfaceData(); flushOnscreenGraphics(); } ! // Third, COMPONENT_MOVED/COMPONENT_RESIZED events if (moved) { handleMove(x, y, true); } if (resized) { ! handleResize(w, h,true); } } private void clearBackground(final int w, final int h) { final Graphics g = getOnscreenGraphics(getForeground(), getBackground(), --- 634,650 ---- if (resized) { replaceSurfaceData(); flushOnscreenGraphics(); } ! // Third, COMPONENT_MOVED/COMPONENT_RESIZED/PAINT events if (moved) { handleMove(x, y, true); } if (resized) { ! handleResize(w, h, true); ! repaintPeer(); } } private void clearBackground(final int w, final int h) { final Graphics g = getOnscreenGraphics(getForeground(), getBackground(),