Filter properties to forward to dialog events on resize and drag etc. - fix for #5291

This commit is contained in:
Jörn Zaefferer 2010-03-05 17:56:34 +00:00
parent eaeb580d82
commit d3a8c96428

View File

@ -327,6 +327,13 @@ $.widget("ui.dialog", {
doc = $(document), doc = $(document),
heightBeforeDrag; heightBeforeDrag;
function filteredUi(ui) {
return {
positon: ui.position,
offset: ui.offset
};
}
self.uiDialog.draggable({ self.uiDialog.draggable({
cancel: '.ui-dialog-content, .ui-dialog-titlebar-close', cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
handle: '.ui-dialog-titlebar', handle: '.ui-dialog-titlebar',
@ -334,16 +341,16 @@ $.widget("ui.dialog", {
start: function(event, ui) { start: function(event, ui) {
heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height(); heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
$(this).height($(this).height()).addClass("ui-dialog-dragging"); $(this).height($(this).height()).addClass("ui-dialog-dragging");
self._trigger('dragStart', event, ui); self._trigger('dragStart', event, filteredUi(ui));
}, },
drag: function(event, ui) { drag: function(event, ui) {
self._trigger('drag', event, ui); self._trigger('drag', event, filteredUi(ui));
}, },
stop: function(event, ui) { stop: function(event, ui) {
options.position = [ui.position.left - doc.scrollLeft(), options.position = [ui.position.left - doc.scrollLeft(),
ui.position.top - doc.scrollTop()]; ui.position.top - doc.scrollTop()];
$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag); $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
self._trigger('dragStop', event, ui); self._trigger('dragStop', event, filteredUi(ui));
$.ui.dialog.overlay.resize(); $.ui.dialog.overlay.resize();
} }
}); });
@ -360,6 +367,15 @@ $.widget("ui.dialog", {
? handles ? handles
: 'n,e,s,w,se,sw,ne,nw'; : 'n,e,s,w,se,sw,ne,nw';
function filteredUi(ui) {
return {
originalPosition: ui.originalPosition,
originalSize: ui.originalSize,
position: ui.position,
size: ui.size
};
}
self.uiDialog.resizable({ self.uiDialog.resizable({
cancel: '.ui-dialog-content', cancel: '.ui-dialog-content',
containment: 'document', containment: 'document',
@ -371,16 +387,16 @@ $.widget("ui.dialog", {
handles: resizeHandles, handles: resizeHandles,
start: function(event, ui) { start: function(event, ui) {
$(this).addClass("ui-dialog-resizing"); $(this).addClass("ui-dialog-resizing");
self._trigger('resizeStart', event, ui); self._trigger('resizeStart', event, filteredUi(ui));
}, },
resize: function(event, ui) { resize: function(event, ui) {
self._trigger('resize', event, ui); self._trigger('resize', event, filteredUi(ui));
}, },
stop: function(event, ui) { stop: function(event, ui) {
$(this).removeClass("ui-dialog-resizing"); $(this).removeClass("ui-dialog-resizing");
options.height = $(this).height(); options.height = $(this).height();
options.width = $(this).width(); options.width = $(this).width();
self._trigger('resizeStop', event, ui); self._trigger('resizeStop', event, filteredUi(ui));
$.ui.dialog.overlay.resize(); $.ui.dialog.overlay.resize();
} }
}) })