1148 { 1149 show = true; 1150 } 1151 } 1152 } 1153 1154 warningWindow.setSecurityWarningVisible(show, true); 1155 } 1156 1157 boolean isOverrideRedirect() { 1158 return XWM.getWMID() == XWM.OPENLOOK_WM || 1159 Window.Type.POPUP.equals(getWindowType()); 1160 } 1161 1162 final boolean isOLWMDecorBug() { 1163 return XWM.getWMID() == XWM.OPENLOOK_WM && 1164 winAttr.nativeDecor == false; 1165 } 1166 1167 public void dispose() { 1168 SunToolkit.awtLock(); 1169 try { 1170 windows.remove(this); 1171 } finally { 1172 SunToolkit.awtUnlock(); 1173 } 1174 if (warningWindow != null) { 1175 warningWindow.destroy(); 1176 } 1177 removeRootPropertyEventDispatcher(); 1178 mustControlStackPosition = false; 1179 super.dispose(); 1180 1181 /* 1182 * Fix for 6457980. 1183 * When disposing an owned Window we should implicitly 1184 * return focus to its decorated owner because it won't 1185 * receive WM_TAKE_FOCUS. 1186 */ 1187 if (isSimpleWindow()) { 1188 if (target == XKeyboardFocusManagerPeer.getCurrentNativeFocusedWindow()) { 1189 Window owner = getDecoratedOwner((Window)target); 1190 ((XWindowPeer)AWTAccessor.getComponentAccessor().getPeer(owner)).requestWindowFocus(); 1191 } 1192 } 1193 } 1194 boolean isResizable() { 1195 return winAttr.isResizable; 1196 } 1197 1198 public void handleVisibilityEvent(XEvent xev) { 1199 super.handleVisibilityEvent(xev); 1200 XVisibilityEvent ve = xev.get_xvisibility(); 1201 winAttr.visibilityState = ve.get_state(); 1202 // if (ve.get_state() == XlibWrapper.VisibilityUnobscured) { 1203 // // raiseInputMethodWindow 1204 // } 1205 repositionSecurityWarning(); 1206 } 1207 1208 void handleRootPropertyNotify(XEvent xev) { 1209 XPropertyEvent ev = xev.get_xproperty(); 1210 if( mustControlStackPosition && 1211 ev.get_atom() == XAtom.get("_NET_CLIENT_LIST_STACKING").getAtom()){ 1212 // Restore stack order unhadled/spoiled by WM or some app (nautilus). 1213 // As of now, don't use any generic machinery: just | 1148 { 1149 show = true; 1150 } 1151 } 1152 } 1153 1154 warningWindow.setSecurityWarningVisible(show, true); 1155 } 1156 1157 boolean isOverrideRedirect() { 1158 return XWM.getWMID() == XWM.OPENLOOK_WM || 1159 Window.Type.POPUP.equals(getWindowType()); 1160 } 1161 1162 final boolean isOLWMDecorBug() { 1163 return XWM.getWMID() == XWM.OPENLOOK_WM && 1164 winAttr.nativeDecor == false; 1165 } 1166 1167 public void dispose() { 1168 if (isGrabbed()) { 1169 if (grabLog.isLoggable(PlatformLogger.FINE)) { 1170 grabLog.fine("Generating UngrabEvent on {0} because of the window disposal", this); 1171 } 1172 postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource())); 1173 } 1174 1175 SunToolkit.awtLock(); 1176 1177 try { 1178 windows.remove(this); 1179 } finally { 1180 SunToolkit.awtUnlock(); 1181 } 1182 1183 if (warningWindow != null) { 1184 warningWindow.destroy(); 1185 } 1186 1187 removeRootPropertyEventDispatcher(); 1188 mustControlStackPosition = false; 1189 super.dispose(); 1190 1191 /* 1192 * Fix for 6457980. 1193 * When disposing an owned Window we should implicitly 1194 * return focus to its decorated owner because it won't 1195 * receive WM_TAKE_FOCUS. 1196 */ 1197 if (isSimpleWindow()) { 1198 if (target == XKeyboardFocusManagerPeer.getCurrentNativeFocusedWindow()) { 1199 Window owner = getDecoratedOwner((Window)target); 1200 ((XWindowPeer)AWTAccessor.getComponentAccessor().getPeer(owner)).requestWindowFocus(); 1201 } 1202 } 1203 } 1204 1205 boolean isResizable() { 1206 return winAttr.isResizable; 1207 } 1208 1209 public void handleVisibilityEvent(XEvent xev) { 1210 super.handleVisibilityEvent(xev); 1211 XVisibilityEvent ve = xev.get_xvisibility(); 1212 winAttr.visibilityState = ve.get_state(); 1213 // if (ve.get_state() == XlibWrapper.VisibilityUnobscured) { 1214 // // raiseInputMethodWindow 1215 // } 1216 repositionSecurityWarning(); 1217 } 1218 1219 void handleRootPropertyNotify(XEvent xev) { 1220 XPropertyEvent ev = xev.get_xproperty(); 1221 if( mustControlStackPosition && 1222 ev.get_atom() == XAtom.get("_NET_CLIENT_LIST_STACKING").getAtom()){ 1223 // Restore stack order unhadled/spoiled by WM or some app (nautilus). 1224 // As of now, don't use any generic machinery: just |