On Fri, 22 Jan 2021 11:02:29 GMT, Robert Lichtenberger <rlich...@openjdk.org> 
wrote:

>> While trying to come up with a good documentation I've detected a real 
>> change in behaviour in connection with the NodeOrientation of the anchor 
>> node.
>> Although this has never been documented, when NodeOrientation.RIGHT_TO_LEFT 
>> is set, the context menu was right-aligned for Side=TOP and Side=BOTTOM. 
>> Since I assume we don't want to change this behaviour I would now document 
>> it and adapt my patch accordingly. I've already written a test case like 
>> this:
>>     @Test public void test_position_withOrientation() throws 
>> InterruptedException {
>>         ContextMenu cm = createContextMenu(false);
>>         anchorBtn.setNodeOrientation(NodeOrientation.RIGHT_TO_LEFT);
>>         cm.show(anchorBtn, Side.TOP, 0, 0);
>> 
>>         Bounds anchorBounds = 
>> anchorBtn.localToScreen(anchorBtn.getLayoutBounds());
>>         Node cmNode = cm.getScene().getRoot();
>>         Bounds cmBounds = 
>> cm.getScene().getRoot().localToScreen(cmNode.getLayoutBounds());
>> 
>>         assertEquals(anchorBounds.getMaxX(), cmBounds.getMaxX(), 0.0);
>>         assertEquals(anchorBounds.getMinY(), cmBounds.getMaxY(), 0.0);
>>         anchorBtn.setNodeOrientation(NodeOrientation.LEFT_TO_RIGHT);
>>     }
>> which passes with the old implementation but (currently) fails with the new 
>> implementation.
>
> Oh wow. Further experimentation has shown, that if 
> NodeOrientation.RIGHT_TO_LEFT is used on the anchor, then Side.LEFT used to 
> make the menu appear on the **right** hand side and Side.RIGHT used to make 
> the menu appear on the **left** hand side of the button, which really 
> surprises me, since I didn't expect the side parameter to be relative.

Ok, I just pushed all the changes necessary to keep the old behaviour for 
right-to-left node orientation.
If you would rather have the behaviour changed (it doesn't seem very intuitive 
to me...) just tell me and I can change the implementation / tests.

-------------

PR: https://git.openjdk.java.net/jfx/pull/383

Reply via email to