hg: openjfx/8u-dev/rt: 4 new changesets

hang.vo at oracle.com hang.vo at oracle.com
Thu Jan 30 15:32:55 PST 2014

Changeset: 20396f6a7fac
Author:    jgiles
Date:      2014-01-29 14:54 +1300
URL:       http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/20396f6a7fac

RT-34897: [ListView] ListView not downsizing cells when its breadth shrinks

! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java

Changeset: a874c214a9c7
Author:    jgiles
Date:      2014-01-31 11:14 +1300
URL:       http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/a874c214a9c7

Small TitledPaneSkin cleanup to simplify code, improve animation quality and remove unnecessary scenegraph layer.

! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TitledPaneBehavior.java
! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TitledPaneSkin.java

Changeset: d32812219304
Author:    jgiles
Date:      2014-01-31 11:23 +1300
URL:       http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/d32812219304

RT-34550: ContextMenu displays old Menus that should have been deleted.
This is a slight behavioral change in how Menus are handled, but it is the only
option to ensure that the glitch identified in RT-34550 doesn't occur. In short
the bug is that a Menu was being set in two separate ContextMenu instances. The
ContextMenu instances had a direct reference to the Menu, but the Menu itself
only has a reference upwards to the last-set ContextMenu. The end result of this
is that when one context menu was shown and hovered over, the Menus items would
display in two separate places - as they are the same items with the same Menu
parent. In short, reusing a single Menu inside multiple ContextMenus should not
be allowed (which in any case is how the JavaFX scenegraph has trained people to
work). This changeset simply enforces that by silently detaching a Menu/MenuItem
from its old parentPopup when it is set inside a new parentPopup.

This may break some people, but the fix is simple. Rather than create multiple
ContextMenu instances consisting of the same items, simply create one ContextMenu
instance and set it on all nodes that should display that ContextMenu.

! modules/controls/src/main/java/javafx/scene/control/ContextMenu.java
! modules/controls/src/main/java/javafx/scene/control/Menu.java
! modules/controls/src/test/java/javafx/scene/control/ContextMenuTest.java

Changeset: 8ce1f1916a3a
Author:    jgiles
Date:      2014-01-31 12:11 +1300
URL:       http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/8ce1f1916a3a

RT-34563: Context Menus overlap in TableView's TextFieldTableCell
I moved the code responsible for showing context menus out of the TextField mouse
event handler into the proper context menu handler, so that the event could be
consumed before it bubbled up to the default context menu handler in Control.
This prevents the context menu on the cell being shown, as the TextField context
menu is shown first and then consumes the event, as expected.

! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/BehaviorBase.java
! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextAreaBehavior.java
! modules/controls/src/main/java/com/sun/javafx/scene/control/behavior/TextFieldBehavior.java
! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/BehaviorSkinBase.java
! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextAreaSkin.java
! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TextFieldSkin.java
! modules/controls/src/main/java/javafx/scene/control/Control.java

More information about the openjfx-dev mailing list