Details
-
Type:
Enhancement
-
Status: Resolved
-
Priority:
P3
-
Resolution: Fixed
-
Affects Version/s: 7, 8, 9
-
Fix Version/s: 9
-
Component/s: client-libs
-
Labels:
-
Subcomponent:
-
Resolved In Build:b124
-
CPU:x86
-
OS:os_x
Description
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.
Attachments
Issue Links
- 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
-