-
Enhancement
-
Resolution: Fixed
-
P3
-
7, 8, 9
-
b124
-
x86
-
os_x
A DESCRIPTION OF THE REQUEST :
The Aqua LAF invokes a private method via native code to force the creation of a heavyweight popup with an owner. A public API is needed so that a custom API can do the same thing.
Using the public API, the only way to force the creation of a heavyweight popup is to pass null as the invoker, which means the popup frame has no owner. The lack of a window owner means that the BasicPopupMenuUI window grab does not encompass the popup frame, so that mouse buttons on the popup cancel the popup.
A simple solution would be to change the setPopupType() method from private to protected so that it can be called from a custom PopupFactory installed by a custom LAF.
Submitted by Alan Snyder.
JUSTIFICATION :
Some platform UI features may be supported only on windows (not components). It should be possible to create a custom LAF that uses these features.
The Aqua LAF invokes a private method via native code to force the creation of a heavyweight popup with an owner. A public API is needed so that a custom API can do the same thing.
Using the public API, the only way to force the creation of a heavyweight popup is to pass null as the invoker, which means the popup frame has no owner. The lack of a window owner means that the BasicPopupMenuUI window grab does not encompass the popup frame, so that mouse buttons on the popup cancel the popup.
A simple solution would be to change the setPopupType() method from private to protected so that it can be called from a custom PopupFactory installed by a custom LAF.
Submitted by Alan Snyder.
JUSTIFICATION :
Some platform UI features may be supported only on windows (not components). It should be possible to create a custom LAF that uses these features.
- duplicates
-
JDK-8232927 ToolTipManager is unable to force heavy weight popups
- Closed
- relates to
-
JDK-8158358 [TEST_BUG] test/javax/swing/JPopupMenu/8147521/PopupMenuTest.java: compilation failed
- Resolved