Opened 12 years ago

Closed 12 years ago

#3875 closed defect (worksforme)

Drag and drop between scrollable lists, where one list is above the other

Reported by: guest Owned by: Eugene Lazutkin
Priority: high Milestone: 0.9
Component: DnD Version: 0.4.2rc1
Keywords: drag and drop overlapping div Cc: sbarkdull@…
Blocked By: Blocking:

Description

To reproduce:

Create 2 scrolling lists "controls", where one is positioned above the other. The list controls should be constructed using div elements with overflow-y set to "auto", and the list should be implemented as a table inside of the div tag. The div tag must have its style.height set to a value that will cause it to scroll. SOmething like:

<table border='1px' style='width:30%'>

<tr>

<td>

<table border='1px' style='width:200px' class='container_inset_open'>

<tr>

<td id='list1Containerxx' style="width:200px;height:100px" class="container_content">

<div style='overflow-y:auto;height:100px'>

<table style='height:100px'>

<tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr> <tr><td>xxxx</td></tr>

</table>

</div>

</td>

</tr>

</table>

</td>

</tr> <tr>

<td>

<table border='1px' style='width:200px' class='container_inset_open'>

<tr>

<td id='list1Containerxx' style="width:200px;height:100px" class="container_content">

<div style='overflow-y:auto;height:100px'>

<table style='height:100px'>

<tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr> <tr><td>bart</td></tr>

</table>

</div>

</td>

</tr>

</table>

</td>

</tr>

</table>

The lists must have more items in them than are visible, so that the hidden portion of the scolled div element of one list is over lapping with the hidden portion of the div element of the other list. elements that are registered as drop targets first seem to be more likely to work properly.

After reading some of the DND code, it appears that the intersection tests on the bounding boxes while looking for the current drop target (or drag over target) does not consider the z-order of the target. So the target that was registered first will get the drop event.

This issue seems to exist in both the .4.X and .9 code lines.

Feel free to contact me at sbarkdull@…

Change History (4)

comment:1 Changed 12 years ago by Eugene Lazutkin

Priority: highestnormal
severity: blockernormal
Status: newassigned

Could you attach an example, which demonstrates the problem with Dojo 0.9? dojo/tests/dnd/flickr_viewer.html uses divs in similar fashion, but I could not reproduce your problem.

comment:2 Changed 12 years ago by Eugene Lazutkin

Milestone: 0.9

comment:3 Changed 12 years ago by Eugene Lazutkin

(In [9939]) Minor cleanup. Refs #3875.

comment:4 Changed 12 years ago by Eugene Lazutkin

Resolution: worksforme
Status: assignedclosed

I cannot reproduce it. If you have a reproducible example for Dojo 0.9, please attach it, and reopen the ticket.

Note: See TracTickets for help on using tickets.