Окна рабочего стола ExtJS 4 растягивают десоп / панель задач, когда открываются с размерами / позициями, которые превышают размер рабочего стола - PullRequest
0 голосов
/ 14 декабря 2011

Если я вызову createWindow для модуля и передам ему значения width, height, x и y, окно откроется нормально, но заставит рабочий стол и / или панель задач выглядеть растянутыми.

Например, если открывается окно, нижняя граница которого находится под панелью задач, оно не только покроет панель задач, но и продолжит смещать весь десоп вниз, заставляя верх исчезнуть, и панель задач будет растягиваться до конца. в нижней части формы.

В идеале хотелось бы, чтобы перекрывающаяся часть окна скользила за пределы экрана и под панелью задач.

Ext.define('MyApp.view.locations.Module', {

.......

createWindow:        function (width, height, x, y) {

    this.width  = width  || 740;
    this.height = height || 480;

    var b = this.app.getDesktop();
    var a = b.getWindow('locations-module-window');

    if (!a) {

        this.locationsGrid   = Ext.create('MyApp.view.locations.Grid');
        this.locationsFilter = Ext.create('MyApp.view.locations.Filter');

        this.locationsPanel = Ext.create('Ext.form.Panel', {
            bodyPadding:       0,
            border:            true,
            fieldDefaults:     {
                labelAlign:   'left',
                msgTarget:    'side'
            },
            frame:             false,
            header:            false,
            id:               'locations-module-panel',
            layout:           'border',
            defaults:          {
                bodyStyle:    'padding: 15px',
                collapsible:   true,
                split:         true
            },
            items:             [
                this.locationsGrid,
                this.locationsFilter
            ]
        });

        a = b.createWindow({

            animCollapse:      true,
            border:            false,
            collapsible:       true,
            constrainHeader:   false,
            height:            this.height,
            width:             this.width,
            x:                 x,
            y:                 y,
            iconCls:          'icon-locations',
            id:               'locations-module-window',
            layout:           'fit',
            maximizable:       true,
            minimizable:       true,
            title:            'Locations',
            items:             [{
                activeTab:     0,
                defaults:      {
                    border:    false,
                    header:    false
                },
                xtype:        'tabpanel',
                items:         [{
                    iconCls:  'icon-locations',
                    layout:   'fit',
                    title:    'Branches',
                    items:     this.locationsPanel
                },{
                    html:     "<p>Region items go here.</p>",
                    iconCls:  'icon-regions',
                    title:    "Regions"
                }]
            }]
        });
    };

    a.show();
    return a
},

....

1 Ответ

0 голосов
/ 14 декабря 2011

См. Этот комментарий из Ext.window.Window документации :

По умолчанию Windows будет отображаться в document.body.Чтобы ограничить окно другим элементом, задайте renderTo.

Итак, установите renderTo для любой панели, которая должна содержать все окна.Предположительно, эта панель не перекрывает «панель задач», поэтому окно тоже не будет.

...