| Summary: | [Table] Scrolling in table viewers with DND support is broken | ||
|---|---|---|---|
| Product: | [RT] RAP | Reporter: | Michael Klein <michael.klein> |
| Component: | RWT | Assignee: | Tim Buschtoens <tbuschto> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P2 | CC: | tbuschto |
| Version: | 1.4 | ||
| Target Milestone: | 1.4 M4 | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
Confirmed. Tree and List work fine since they are build differently. Fixed in CVS Head in Table.js. (It now works just as Tree.js). |
Environment: Firefox 3.6.13/IE 8.0.7600 on Win7 The bug occurs only using RAP 1.4 (e.g. CVS HEAD). With 1.3.1 it works correctly. Steps to reproduce: * create a table viewer * add drag support to the table viewer * fill it with some items to cause a vertical scroll bar * use the bar itself to scroll down (not the mouse wheel or the arrow keys or the scroll bar arrow buttons) -> The table scrolls down exactly one item and then switches to item drag drag mode Expected: Using the scroll bar should not cause drag of an table item. Here is a snippet to reproduce: public class Snippet implements IEntryPoint { public int createUI() { Display display = new Display(); Shell shell = new Shell(display, SWT.TITLE); createContent(shell); shell.layout(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return 0; } private void createContent(Shell shell) { shell.setLayout(new GridLayout(1, false)); int style = SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER; Table table = new Table(shell, style); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); TableViewer viewer = new TableViewer(table); viewer.setLabelProvider(new LabelProvider()); viewer.setContentProvider(new ArrayContentProvider()); String[] input = new String[100]; for (int i = 0; i < input.length; i++) { input[i] = "Item " + i; } viewer.setInput(input); // drag support viewer.addDragSupport(DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK, new Transfer[] {TextTransfer.getInstance()}, new DragSourceAdapter()); } }