Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 345692 | Differences between
and this patch

Collapse All | Expand All

(-)js/org/eclipse/rwt/DNDSupport.js (-1 / +7 lines)
Lines 186-191 Link Here
186
    _dragOutHandler : function( event ) {
186
    _dragOutHandler : function( event ) {
187
      var target = event.getCurrentTarget();
187
      var target = event.getCurrentTarget();
188
      var mouseEvent = event.getMouseEvent();
188
      var mouseEvent = event.getMouseEvent();
189
      if( this._currentTargetWidget !== mouseEvent.getTarget() ) {
190
        this._onMouseOver( mouseEvent );
191
      }
189
      var dndHandler = qx.event.handler.DragAndDropHandler.getInstance();
192
      var dndHandler = qx.event.handler.DragAndDropHandler.getInstance();
190
      dndHandler.clearActions();
193
      dndHandler.clearActions();
191
      this.setFeedback( target, null, 0 );
194
      this.setFeedback( target, null, 0 );
Lines 386-392 Link Here
386
      if(    widget instanceof org.eclipse.swt.widgets.TableRow
389
      if(    widget instanceof org.eclipse.swt.widgets.TableRow
387
          || widget instanceof org.eclipse.rwt.widgets.TreeRow ) 
390
          || widget instanceof org.eclipse.rwt.widgets.TreeRow ) 
388
      {
391
      {
389
        result = widget;
392
        // _currentDropTarget could be another tree or table
393
        if( this._currentDropTarget && this._currentDropTarget.contains( widget ) ) {
394
	        result = widget;
395
        }
390
      }
396
      }
391
      return result;
397
      return result;
392
    },
398
    },
(-)js/org/eclipse/rwt/test/tests/DNDTest.js (+44 lines)
Lines 991-996 Link Here
991
      tree.destroy();
991
      tree.destroy();
992
    },
992
    },
993
993
994
    testTreeRequestItemOutsideRow_Bug_345692 : function() {
995
      var testUtil = org.eclipse.rwt.test.fixture.TestUtil;
996
      var dndSupport = org.eclipse.rwt.DNDSupport.getInstance();
997
      var dndHandler = qx.event.handler.DragAndDropHandler.getInstance()
998
      var leftButton = qx.event.type.MouseEvent.buttons.left;
999
      testUtil.prepareTimerUse();
1000
      testUtil.initRequestLog();
1001
      var tree = this.createTreeTarget();
1002
      var item0 = this.createTreeItem( 0, tree, tree );
1003
      var item1 = this.createTreeItem( 1, tree, tree );
1004
      var source = this.createSource();
1005
      testUtil.flush();
1006
      var sourceNode = source._getTargetNode();
1007
      var targetNode = tree._clientArea.getChildren()[ 0 ]._getTargetNode();
1008
      var treeNode = tree.getElement();
1009
      var doc = document.body;
1010
      // drag 
1011
      testUtil.fakeMouseEventDOM( sourceNode, "mousedown", leftButton, 11, 11 );
1012
      testUtil.fakeMouseEventDOM( doc, "mousemove", leftButton, 25, 15 );
1013
      assertNotNull( dndHandler.__dragCache );
1014
      assertTrue( dndHandler.__dragCache.dragHandlerActive );
1015
      // over treeRow
1016
      testUtil.fakeMouseEventDOM( targetNode, "mouseover", leftButton );
1017
      assertTrue( dndSupport._currentTargetWidget instanceof org.eclipse.rwt.widgets.TreeRow );
1018
      testUtil.fakeMouseEventDOM( targetNode, "mousemove", leftButton );
1019
      assertTrue( dndSupport._isDropTargetEventScheduled( "dragEnter" ) );
1020
      dndSupport._cancelDropTargetEvent( "dragEnter" );
1021
      dndSupport._cancelDropTargetEvent( "dragOver" );
1022
      // over clientArea
1023
      // NOTE: IE may fire mousemove before mouseover, See Bug 345692
1024
      testUtil.fakeMouseEventDOM( doc, "mousemove", leftButton );
1025
      assertFalse( dndSupport._currentTargetWidget instanceof org.eclipse.rwt.widgets.TreeRow );
1026
      testUtil.fakeMouseEventDOM( doc, "mouseover", leftButton );
1027
      testUtil.forceTimerOnce();
1028
      assertEquals( 2, testUtil.getRequestsSend() );
1029
      var request = testUtil.getRequestLog()[ 1 ];
1030
      var expected = "dragLeave.item=null";
1031
      console.log( request );
1032
      assertTrue( request.search( expected ) != -1 );
1033
      source.setParent( null );
1034
      source.destroy();
1035
      tree.destroy();
1036
    },
1037
994
    testTreeRequestItemIsSourceItem: function() {
1038
    testTreeRequestItemIsSourceItem: function() {
995
      var testUtil = org.eclipse.rwt.test.fixture.TestUtil;
1039
      var testUtil = org.eclipse.rwt.test.fixture.TestUtil;
996
      var dndSupport = org.eclipse.rwt.DNDSupport.getInstance();
1040
      var dndSupport = org.eclipse.rwt.DNDSupport.getInstance();

Return to bug 345692