return function(){ actions.ribbons.preventTransitions(s) var end = function(){ // XXX not sure why this does not work without a setTimeout(..) //actions.ribbons.restoreTransitions(s, true) setTimeout(function(){ actions.ribbons.restoreTransitions(s, true) }, 0) } // XXX hack??? if(target instanceof Array){ actions.reload(true) return end() } var target_ribbon = actions.data.getRibbon(target) // nothing changed... if(source_ribbon == target_ribbon && actions.data.getImageOrder(target) == source_order){ return end() } // place image at position... var to = actions.data.getImage(target, 'next') if(to != null){ actions.ribbons.placeImage(target, to, 'before') } else { // place image after position... to = actions.data.getImage(target, 'prev') if(to != null){ actions.ribbons.placeImage(target, to, 'after') // new ribbon... } else { to = actions.data.getRibbon(target) if(actions.ribbons.getRibbon(to).length == 0){ actions.ribbons .placeRibbon(to, actions.data.getRibbonOrder(target)) } actions.ribbons.placeImage(target, to) } } if(actions.data.getImages(source_ribbon).length == 0){ actions.ribbons.getRibbon(source_ribbon).remove() } actions.focusImage() return end() }
setTimeout(function(){ actions.ribbons.restoreTransitions(s, true) }, 0) }