Share

Drag'n'Drop Interface

File Release Notes and Changelog

Release Name: ddi 1.5

Notes:
This release contains major changes.
From now library requires more strict coding, to avoid unexpected effects.
Scripts written using prior versions could not work or work in unexpected way.


Changes: Legend: ! attention, it's important ? not approved bug / no clear view how to fix a bug + added feature % changed/bug fixed - removed === % execution of dragstart.after plugins moved to onclick event % initialization of drag moved back to 'onclick' mouse event due to Mozilla/FF bugs with document selection, input controls and moving of cetrain nodes. % MZ/FF behaviour fixing code is moved to fixDragInMz plugin - code cleanup ! to receive dropped elements node SHOULD implement __onDrop handler, process onDrop or/and return 'true'. in DDI prior to 1.5 setting dropEffect was enough to receive dropped element. % geometry had to calc __layerX/__layerY in wrong way (used to MZ relative layer coordinates, instead of page coordinates) + plugin methods sorting on install to execute them in pluginGroups ascending order (allows to disable less important plugins and plugin groups) % handleDragEvent did not return false, if no such event handler exists + DDI now checks parent nodes for __onDragStart handler, if main target node would not be dragged % __onDragEnter, __onDrag, __onDragLeave, __onDrop are executed only if dragged node set effectAllowed other than 'none' + __onDragEnd is called even if there was no drag (like shutdown plugin function) + __onDragEnd finishes drag on target node too ! all plugins implementing drag.before, dragend.before method should return definitely true or false, because 'undefined' is threated as false and execution of __onDrag, __onDragEnter, __onDragOver, __onDragLeave, __onDrop will be blocked + geometry calculates mouse position over layer + geometry stores layer offsets as el.__offsetX, el.__offsetY and mouse pointer position as el.__layerX, el.__layerY + plugin could block execution of lower-order plugin groups + plugin groups: DDI_CORE, DDI_SYSYEM, DDI_VISUAL + plugin could block execution of __onDrag, __onDragEnter, __onDragOver, __onDragLeave by returning false from drag.before handler + plugin could block execution of __onDrop by returning false from dragend.before handler % updated bugfix with position:static, instead of position:absolute, position:relative is used, safe for table-cell elements