Ticket #4101: dialog-minheight.patch

File dialog-minheight.patch, 2.9 KB (added by Scott González, 11 years ago)
  • Users/sgonzale/Documents/workspace/jQuery

     
    1919                drag: "drag.draggable",
    2020                dragStop: "stop.draggable",
    2121                maxHeight: "maxHeight.resizable",
    22                 minHeight: "minHeight.resizable",
    2322                maxWidth: "maxWidth.resizable",
    2423                minWidth: "minWidth.resizable",
    2524                resizeStart: "start.resizable",
     
    351350                        maxWidth: options.maxWidth,
    352351                        maxHeight: options.maxHeight,
    353352                        minWidth: options.minWidth,
    354                         minHeight: options.minHeight,
     353                        minHeight: self._minHeight(),
    355354                        start: function() {
    356355                                $(this).addClass("ui-dialog-resizing");
    357356                                (options.resizeStart && options.resizeStart.apply(self.element[0], arguments));
     
    371370                .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
    372371        },
    373372
     373        _minHeight: function() {
     374                var options = this.options;
     375
     376                return (options.height == 'auto'
     377                        ? options.minHeight
     378                        : Math.min(options.minHeight, options.height));
     379        },
     380
    374381        _position: function(pos) {
    375382                var wnd = $(window), doc = $(document),
    376383                        pTop = doc.scrollTop(), pLeft = doc.scrollLeft(),
     
    425432
    426433        _setData: function(key, value){
    427434                var self = this,
    428                         uiDialog = self.uiDialog;
     435                        uiDialog = self.uiDialog,
     436                        resize = false;
    429437               
    430438                (setDataSwitch[key] && uiDialog.data(setDataSwitch[key], value));
    431439                switch (key) {
     
    446454                                        : uiDialog.draggable('destroy'));
    447455                                break;
    448456                        case "height":
    449                                 uiDialog.height(value);
     457                                resize = true;
     458                                break;
     459                        case "minHeight":
     460                                resize = true;
    450461                                break;
    451462                        case "position":
    452463                                self._position(value);
     
    452463                                self._position(value);
    453464                                break;
    454465                        case "resizable":
    455                                 var isResizable = uiDialog.is(':data(resizable)');
     466                                var isResizable = uiDialog.is(':ui-resizable');
    456467
    457468                                // currently resizable, becoming non-resizable
    458469                                (isResizable && !value && uiDialog.resizable('destroy'));
     
    468479                                $(".ui-dialog-title", self.uiDialogTitlebar).html(value || ' ');
    469480                                break;
    470481                        case "width":
    471                                 uiDialog.width(value);
     482                                resize = true;
    472483                                break;
    473484                }
    474485
     
    473484                }
    474485
    475486                $.widget.prototype._setData.apply(self, arguments);
     487                (resize && self._size());
    476488        },
    477489
    478490        _size: function() {
     
    496508                        })
    497509                        .height();
    498510
    499                 this.element
    500                         .css({
     511                this.element.css(options.height == 'auto'
     512                        ? {
    501513                                minHeight: Math.max(options.minHeight - nonContentHeight, 0),
    502                                 height: options.height == 'auto'
    503                                         ? 'auto'
    504                                         : Math.max(options.height - nonContentHeight, 0)
     514                                height: 'auto'
     515                        }
     516                        : {
     517                                height: Math.max(options.height - nonContentHeight, 0)
    505518                        });
     519
     520                (this.uiDialog.is(':ui-resizable') &&
     521                        this.uiDialog.resizable('option', 'minHeight', this._minHeight()));
    506522        }
    507523});
    508524