< prev index next >

src/java.desktop/unix/classes/sun/awt/X11/XTrayIconPeer.java

Print this page

        

*** 91,101 **** }); if (XWM.getWMID() != XWM.METACITY_WM) { parentXED = dummyXED; // We don't like to leave it 'null'. - } else { parentXED = new XEventDispatcher() { // It's executed under AWTLock. public void dispatchEvent(XEvent ev) { if (isDisposed() || ev.get_type() != XConstants.ConfigureNotify) { --- 91,100 ----
*** 298,311 **** --- 297,318 ---- isDisposed = true; XToolkit.awtUnlock(); removeXED(getWindow(), eframeXED); removeXED(eframeParentID, parentXED); + removeListeners(); eframe.realDispose(); balloon.dispose(); isTrayIconDisplayed = false; + canvas.dispose(); + canvas = null; + popup = null; + balloon = null; + tooltip = null; XToolkit.targetDisposedPeer(target, this); + target = null; + eframe = null; } public static void suppressWarningString(Window w) { AWTAccessor.getWindowAccessor().setTrayIconWindow(w, true); }
*** 414,423 **** --- 421,436 ---- canvas.addMouseListener(eventProxy); canvas.addMouseMotionListener(eventProxy); eframe.addMouseListener(eventProxy); } + void removeListeners() { + canvas.removeMouseListener(eventProxy); + canvas.removeMouseMotionListener(eventProxy); + eframe.removeMouseListener(eventProxy); + } + long getWindow() { return AWTAccessor.getComponentAccessor() .<XEmbeddedFramePeer>getPeer(eframe).getWindow(); }
*** 548,557 **** --- 561,575 ---- curW = autosize ? width : image.getWidth(observer); curH = autosize ? height : image.getHeight(observer); super.repaintImage(doClear || (old_autosize != autosize)); } + + public void dispose() { + super.dispose(); + target = null; + } } @SuppressWarnings("serial") // JDK-implementation class public static class IconCanvas extends Canvas { volatile Image image;
*** 571,580 **** --- 589,602 ---- observer = new IconObserver(); } repaintImage(true); } + public void dispose() { + observer = null; + } + // Invoke on EDT. protected void repaintImage(boolean doClear) { Graphics g = getGraphics(); if (g != null) { try {
< prev index next >