static/ext/src/grid/locking/Lockable.js
function() {
        var me = this,
            lockedView = me.lockedGrid.getView(),
            lockedViewEl = lockedView.el.dom,
            spacerHeight = (me.normalGrid.headerCt.tooNarrow ? Ext.getScrollbarSize().height : 0);

        // If locked view is configured to scroll horizontally, and it overflows horizontally, then we do not need the spacer
        if (lockedView.scrollFlags.x && lockedViewEl.scrollWidth > lockedViewEl.clientWidth) {
            spacerHeight = 0;
        }

        lockedView.el.dom.style.borderBottomWidth = spacerHeight + 'px';

        // Legacy IE browsers which cannot be forced to use the sensible border box model.
        // We have to account in the element's style height for flip-flopping border width
        if (!Ext.isBorderBox) {
            lockedView.el.setHeight(lockedView.lastBox.height);
        }
    }
function() {
        var me = this,
            lockedView = me.lockedGrid.getView(),
            lockedViewEl = lockedView.el.dom,
            spacerHeight = (me.normalGrid.headerCt.tooNarrow ? Ext.getScrollbarSize().height : 0);

        // If locked view is configured to scroll horizontally, and it overflows horizontally, then we do not need the spacer
        if (lockedView.scrollFlags.x && lockedViewEl.scrollWidth > lockedViewEl.clientWidth) {
            spacerHeight = 0;
        }

        lockedView.el.dom.style.borderBottomWidth = spacerHeight + 'px';

        // Legacy IE browsers which cannot be forced to use the sensible border box model.
        // We have to account in the element's style height for flip-flopping border width
        if (!Ext.isBorderBox) {
            lockedView.el.setHeight(lockedView.lastBox.height);
        }
    }
Due to automatic component border setting using inline style, to create the scrollbar-replacing bottom border, we have to postprocess the locked view *after* render. If there are visible normal columns, we do need the fat bottom border.