File tree 2 files changed +28
-11
lines changed
modules/javafx.controls/src
main/java/javafx/scene/control/skin
test/java/test/javafx/scene/control
2 files changed +28
-11
lines changed Original file line number Diff line number Diff line change @@ -2210,17 +2210,17 @@ private void stopDrag() {
2210
2210
if (dragState == DragState .START ) {
2211
2211
// No drag action was performed.
2212
2212
resetDrag ();
2213
- return ;
2214
- }
2215
- // Animate tab header being dragged to its final position.
2216
- dragHeaderSourceX = dragTabHeader . getLayoutX () ;
2217
- dragHeaderTransitionX = dragHeaderDestX - dragHeaderSourceX ;
2218
- dragHeaderAnim . playFromStart ();
2219
-
2220
- // Reorder the tab list.
2221
- if ( dragHeaderStartX != dragHeaderDestX ) {
2222
- (( TabObservableList < Tab >) getSkinnable (). getTabs ()). reorder ( dragTabHeader . tab , swapTab ) ;
2223
- swapTab = null ;
2213
+ } else if ( dragState == DragState . REORDER ) {
2214
+ // Animate tab header being dragged to its final position.
2215
+ dragHeaderSourceX = dragTabHeader . getLayoutX ();
2216
+ dragHeaderTransitionX = dragHeaderDestX - dragHeaderSourceX ;
2217
+ dragHeaderAnim . playFromStart () ;
2218
+
2219
+ // Reorder the tab list.
2220
+ if ( dragHeaderStartX != dragHeaderDestX ) {
2221
+ (( TabObservableList < Tab >) getSkinnable (). getTabs ()). reorder ( dragTabHeader . tab , swapTab );
2222
+ swapTab = null ;
2223
+ }
2224
2224
}
2225
2225
}
2226
2226
Original file line number Diff line number Diff line change @@ -463,6 +463,23 @@ private void show() {
463
463
assertSame (TabPane .TabDragPolicy .FIXED , tabPane .getTabDragPolicy ());
464
464
}
465
465
466
+ @ Test public void tabDragPolicyReorderAndAsymmetricMouseEvent () {
467
+ tabPane .setTabDragPolicy (TabPane .TabDragPolicy .REORDER );
468
+ tabPane .getTabs ().add (tab1 );
469
+ tabPane .getTabs ().add (tab2 );
470
+ root .getChildren ().add (tabPane );
471
+ show ();
472
+
473
+ root .layout ();
474
+
475
+ double xval = (tabPane .localToScene (tabPane .getLayoutBounds ())).getMinX ();
476
+ double yval = (tabPane .localToScene (tabPane .getLayoutBounds ())).getMinY ();
477
+
478
+ SceneHelper .processMouseEvent (scene ,
479
+ MouseEventGenerator .generateMouseEvent (MouseEvent .MOUSE_RELEASED , xval +75 , yval +20 ));
480
+ tk .firePulse ();
481
+ }
482
+
466
483
@ Test public void setRotateGraphicAndSeeValueIsReflectedInModel () {
467
484
tabPane .setRotateGraphic (true );
468
485
assertTrue (tabPane .rotateGraphicProperty ().getValue ());
You can’t perform that action at this time.
0 commit comments