src/macosx/classes/com/apple/laf/ScreenPopupFactory.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2011, 2012, 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, 2014, 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
*** 26,36 **** --- 26,38 ---- package com.apple.laf; import java.awt.*; import javax.swing.*; + import sun.awt.EmbeddedFrame; import sun.lwawt.macosx.CPlatformWindow; + import sun.swing.SwingAccessor; class ScreenPopupFactory extends PopupFactory { static { java.security.AccessController.doPrivileged( new java.security.PrivilegedAction<Void>() {
*** 74,83 **** --- 76,89 ---- popup = _getHeavyWeightPopup(comp, invoker, x, y); } else { popup = super.getPopup(comp, invoker, x, y); } + if (EmbeddedFrame.getAppletIfAncestorOf(comp) != null) { + SwingAccessor.getPopupFactoryAccessor().setHeavyWeightPopupCacheEnabled(popup, false); + } + // Make the popup semi-translucent if it is a heavy weight // see <rdar://problem/3547670> JPopupMenus have incorrect background final Window w = getWindow(invoker); if (w == null) return popup;