<Swing Dev> [13] RFR 7184956: [macosx] JPopupMenu.setDefaultLightPopupEneble(true) doesn't work correctly
semyon.sadetsky at oracle.com
semyon.sadetsky at oracle.com
Mon Jun 3 22:49:38 UTC 2019
On 6/3/19 1:07 PM, Phil Race wrote:
> The test update tests the OS but if I understand correctly, it is the
> Aqua L&F that does not support
> lightweight popups. Can we check if it is Aqua rather than by OS ?
> If you don't want to hard code Aqua then check if it is macos and
> system L&F.
> Ideally there'd be some way to query whether a L&F supports this case
> but there isn't,
> so I'd like to see the test include a comment that says
> // No API exists to check this, but Aqua currently does not support
> lightweight popups.
OK: http://cr.openjdk.java.net/~ssadetsky/7184956/webrev.01
>
> Lightweight popups seem to me to be principally a performance
> optimisation.
I agree, it is clear from the spec that the property is mostly aimed to
enforce lightweight popups disabled rather than enabling them.
And this optimization is not very effective since even if the
lightweight popups are enabled they still cannot
be used beyond the borders of the window and above other windows which
are the areas where popups are usually showed up.
Also the behavior and appearance of lightweight popups often don't
correspond to the native apps. For example, on Mac if a Swing widow is
overlapped by the top window remaining visible some area of the Swing
window which got the right mouse click
then the appeared popup menu should overlap the top window without
bringing the Swing window to top.
This is cannot be achieve using the optimized lightweight version of the
popup that will be selected when the popup size fits in the Swing window
despite it intersects the top window.
> The thing you have to support is heavyweights and lightweights are
> optional, and
> since I don't think we are likely to investigate whether this can be
> done for Aqua anytime
> soon then the test update seems like an OK step.
That would require to introduce an API change and the implementation
which addresses all those behavioral and appearance issues. Just
unreasonable.
--Semyon
>
> -phil
>
> On 5/24/19 1:26 PM, semyon.sadetsky at oracle.com wrote:
>> webrev: http://cr.openjdk.java.net/~ssadetsky/7184956/webrev.00/
>>
>> bug: https://bugs.openjdk.java.net/browse/JDK-7184956
>>
>> Fix for a test: Mac light weigh popup testing excluded.
>>
>> --Semyon
>>
>
More information about the swing-dev
mailing list