/** Requests focus to this decorated top-level by requesting X input focus to the shell window. */ protected void requestXFocus(long time, boolean timeProvided) { // We have proxied focus mechanism - instead of shell the focus is held // by "proxy" - invisible mapped window. When we want to set X input focus to // toplevel set it on proxy instead. if (focusProxy == null) { if (focusLog.isLoggable(Level.FINE)) focusLog.warning("Focus proxy is null for " + this); } else { if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Requesting focus to proxy: " + focusProxy); if (timeProvided) { focusProxy.xRequestFocus(time); } else { focusProxy.xRequestFocus(); } } }
public void dispose() { if (content != null) { content.destroy(); } focusProxy.destroy(); if (iconWindow != null) { iconWindow.destroy(); } super.dispose(); }