Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 201984 Details for
Bug 355352
[Table][Tree] DefaultSelection events firied when clicking different cells
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
patch for HEAD
treedoubleclick.patch (text/plain), 6.38 KB, created by
Tim Buschtoens
on 2011-08-23 06:06:00 EDT
(
hide
)
Description:
patch for HEAD
Filename:
MIME Type:
Creator:
Tim Buschtoens
Created:
2011-08-23 06:06:00 EDT
Size:
6.38 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.rap.rwt >Index: js/org/eclipse/rwt/widgets/Tree.js >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt/js/org/eclipse/rwt/widgets/Tree.js,v >retrieving revision 1.3 >diff -u -r1.3 Tree.js >--- js/org/eclipse/rwt/widgets/Tree.js 29 Jul 2011 14:56:39 -0000 1.3 >+++ js/org/eclipse/rwt/widgets/Tree.js 23 Aug 2011 10:03:19 -0000 >@@ -29,6 +29,7 @@ > this._renderQueue = {}; > this._resizeLine = null; > this._selectionTimestamp = null; >+ this._selectionOffsetX = null; > this._delayedSelection = false; > // Layout: > this._headerHeight = 0; >@@ -856,13 +857,18 @@ > var leftClick = event.getButton() === "left"; > if( leftClick && mousedown && this.isFocusItem( item ) && this._selectionTimestamp != null ) { > var stamp = new Date(); >- var diff = org.eclipse.swt.EventUtil.DOUBLE_CLICK_TIME; >- if( stamp.getTime() - this._selectionTimestamp.getTime() < diff ) { >+ var offset = event.getPageX(); >+ var timeDiff = org.eclipse.swt.EventUtil.DOUBLE_CLICK_TIME; >+ var offsetDiff = 8; >+ if ( stamp.getTime() - this._selectionTimestamp.getTime() < timeDiff >+ && Math.abs( this._selectionOffsetX - offset ) < offsetDiff ) >+ { > result = true; > } > } > if( mousedown && leftClick && !result ) { > this._selectionTimestamp = new Date(); >+ this._selectionOffsetX = event.getPageX(); > } else if( mousedown ) { > this._selectionTimestamp = null; > } >#P org.eclipse.rap.rwt.jstest >Index: js/org/eclipse/rwt/test/fixture/TestUtil.js >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/fixture/TestUtil.js,v >retrieving revision 1.36 >diff -u -r1.36 TestUtil.js >--- js/org/eclipse/rwt/test/fixture/TestUtil.js 10 May 2011 15:50:03 -0000 1.36 >+++ js/org/eclipse/rwt/test/fixture/TestUtil.js 23 Aug 2011 10:03:22 -0000 >@@ -153,11 +153,11 @@ > return result; > }, > >- clickDOM : function( node ) { >- var left = qx.event.type.MouseEvent.buttons.left; >- this.fakeMouseEventDOM( node, "mousedown", left ); >- this.fakeMouseEventDOM( node, "mouseup", left ); >- this.fakeMouseEventDOM( node, "click", left ); >+ clickDOM : function( node, left, top ) { >+ var button = qx.event.type.MouseEvent.buttons.left; >+ this.fakeMouseEventDOM( node, "mousedown", button, left, top ); >+ this.fakeMouseEventDOM( node, "mouseup", button, left, top ); >+ this.fakeMouseEventDOM( node, "click", button, left, top ); > }, > > shiftClickDOM : function( node ) { >@@ -479,8 +479,8 @@ > ///////////////////////////// > // Event handling - Qooxdoo > >- click : function( widget ) { >- this.clickDOM( widget._getTargetNode() ); >+ click : function( widget, left, top ) { >+ this.clickDOM( widget._getTargetNode(), left, top ); > }, > > doubleClick : function( widget ) { >Index: js/org/eclipse/rwt/test/tests/TreeTest.js >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/TreeTest.js,v >retrieving revision 1.40 >diff -u -r1.40 TreeTest.js >--- js/org/eclipse/rwt/test/tests/TreeTest.js 29 Jul 2011 14:55:36 -0000 1.40 >+++ js/org/eclipse/rwt/test/tests/TreeTest.js 23 Aug 2011 10:03:26 -0000 >@@ -3062,7 +3062,7 @@ > tree.destroy(); > }, > >- testNoDoubleClickDetection : function() { >+ testNoDoubleClickOnDifferentItems : function() { > var testUtil = org.eclipse.rwt.test.fixture.TestUtil; > var wm = org.eclipse.swt.WidgetManager.getInstance(); > var tree = this._createDefaultTree(); >@@ -3075,8 +3075,10 @@ > wm.add( child1, "w3", false ); > testUtil.flush(); > testUtil.initRequestLog(); >- testUtil.click( tree._rowContainer._children[ 0 ] ); >- testUtil.click( tree._rowContainer._children[ 1 ] ); >+ >+ testUtil.click( tree._rowContainer._children[ 0 ], 10, 10 ); >+ testUtil.click( tree._rowContainer._children[ 1 ], 20, 20 ); >+ > assertEquals( 2, testUtil.getRequestsSend() ); > var log = testUtil.getRequestLog(); > var expected = "org.eclipse.swt.events.widgetSelected"; >@@ -3087,7 +3089,35 @@ > assertTrue( log[ 1 ].indexOf( expected ) != -1 ); > tree.destroy(); > }, >- >+ >+ testNoDoubleClickOnSameItem : function() { >+ var testUtil = org.eclipse.rwt.test.fixture.TestUtil; >+ var wm = org.eclipse.swt.WidgetManager.getInstance(); >+ var tree = this._createDefaultTree(); >+ tree.setHasSelectionListeners( true ); >+ tree.setItemCount( 2 ); >+ var child0 = new org.eclipse.rwt.widgets.TreeItem( tree.getRootItem(), 0 ); >+ var child1 = new org.eclipse.rwt.widgets.TreeItem( tree.getRootItem(), 1 ); >+ wm.add( tree, "w1", true ); >+ wm.add( child0, "w2", false ); >+ wm.add( child1, "w3", false ); >+ testUtil.flush(); >+ testUtil.initRequestLog(); >+ >+ testUtil.click( tree._rowContainer._children[ 0 ], 10, 10 ); >+ testUtil.click( tree._rowContainer._children[ 0 ], 20, 10 ); >+ >+ assertEquals( 2, testUtil.getRequestsSend() ); >+ var log = testUtil.getRequestLog(); >+ var expected = "org.eclipse.swt.events.widgetSelected"; >+ var notExpected = "org.eclipse.swt.events.widgetDefaultSelected"; >+ assertTrue( log[ 0 ].indexOf( notExpected ) == -1 ); >+ assertTrue( log[ 1 ].indexOf( notExpected ) == -1 ); >+ assertTrue( log[ 0 ].indexOf( expected ) != -1 ); >+ assertTrue( log[ 1 ].indexOf( expected ) != -1 ); >+ tree.destroy(); >+ }, >+ > testNoDefaultSelectionWithCtrlSpace : function() { > var testUtil = org.eclipse.rwt.test.fixture.TestUtil; > var wm = org.eclipse.swt.WidgetManager.getInstance(); >@@ -3110,7 +3140,7 @@ > assertTrue( log.join().indexOf( notExpected ) == -1 ); > tree.destroy(); > }, >- >+ > testKeyEventBeforeFlush : function() { > var testUtil = org.eclipse.rwt.test.fixture.TestUtil; > var wm = org.eclipse.swt.WidgetManager.getInstance();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 355352
: 201984