Results 1 to 6 of 6

Thread: combo popup visible (and incorrect aligned) after move/resize of surrounding Window

    Success! Looks like we've fixed this one. According to our records the fix was applied for EXTJS-19614 in 6.2.0.589.
  1. #1
    Sencha Premium User
    Join Date
    Apr 2015
    Posts
    6

    Default combo popup visible (and incorrect aligned) after move/resize of surrounding Window

    https://fiddle.sencha.com/#fiddle/vm9


    Ext version tested:

    • Ext 6.0.1.250
    • Ext 6 nightly 2015-10-18
    Browser versions tested against:
    • Chrome Version 46.0.2490.71
    • IE11 (on W10)
    DOCTYPE tested against:
    • Strict
    Description:
    • Ext5 behaviour was to collapse the dropdown when the parent window is moved or resized.
      In Ext6 the dropdown stays visible and is aligned incorrect after a movement of the parent window. The same happens if this window is resized through the top handle. Only difference: a click on the combo popup button(triangle) now hides the popup (if it was moved the popup is realigned instead).
    Steps to reproduce the problem:
    • expand combo which has a surrounding Ext.window
    • move or resize(on top handle) this parent window
    The result that was expected:
    • closure of the combopopup (as of Ext5)
    The result that occurs instead:
    • popup still visible but incorrect aligned.

  2. #2
    Sencha - Support Team bjdurham85's Avatar
    Join Date
    Mar 2014
    Posts
    962

    Default

    Thanks for the report! I have opened a bug in our bug tracker.

  3. #3
    Sencha Premium User
    Join Date
    Apr 2015
    Posts
    6

    Default really fixed?

    Hi,

    I have just retested this against the latest nightly(6.0/20151108)
    It seems as if the error still occurs.
    Has the bugfix been applied to a branch for the 6.0.2 release or is it a regression?

    Marcus

  4. #4
    Sencha Premium User
    Join Date
    Nov 2010
    Location
    Chicago
    Posts
    2,425

    Default

    I don't see that this is fixed using the 20151108 build.

  5. #5
    Sencha User dongryphon's Avatar
    Join Date
    Jul 2009
    Location
    Kansas
    Posts
    1,748

    Default

    Nige's fix is merged for 6.1.

    See https://fiddle.sencha.com/#fiddle/18ee for the test case with this override:

    Code:
    Ext.define('Ext.override.ZIndexManager', {
        override: 'Ext.ZIndexManager',
        
        hide: function() {
            var me = this,
                activeElement = Ext.Element.getActiveElement(),
                all = me.zIndexStack.getRange(),
                len = all.length,
                i,
                comp;
    
            // If any of the components contained focus, we must restore it on show.
            me.focusRestoreElement = null;
            (me.tempHidden || (me.tempHidden = [])).length = 0;
            for (i = 0; i < len; i++) {
                comp = all[i];
                
                // Only hide currently visible floaters
                if (comp.isVisible()) {
                    if (comp.el.contains(activeElement)) {
                        me.focusRestoreElement = activeElement;
                    }
                    comp.el.hide();
                    comp.pendingShow = comp.hidden = true;
                    me.tempHidden.push(comp);
                }
            }
        },
    
        /**
         * @private
         * Restores temporarily hidden managed Components to visibility.
         */
        show: function() {
            var me = this,
                i,
                tempHidden = me.tempHidden,
                len = tempHidden ? tempHidden.length : 0,
                comp;
    
            for (i = 0; i < len; i++) {
                comp = tempHidden[i];
                comp.hidden = false;
                if (comp.pendingShow) {
                    comp.el.show();
                    comp.pendingShow = false;
                    comp.setPosition(comp.x, comp.y);
                    comp.onFloatShow();
                }
                // An attempt at hiding while temp hidden
                // has cleared the pendingShow flag. Hide it
                // properly with full event flow now.
                else {
                    comp.hide();
                }
            }
            me.tempHidden = null;
            if (me.focusRestoreElement) {
                me.focusRestoreElement.focus();
            }
        }
    });
    Don Griffin

    "Use the source, Luke!"

  6. #6
    Sencha Premium Member
    Join Date
    Jun 2011
    Posts
    4

    Default

    Quote Originally Posted by dongryphon View Post
    Nige's fix is merged for 6.1.

    See https://fiddle.sencha.com/#fiddle/18ee for the test case with this override:

    Code:
    Ext.define('Ext.override.ZIndexManager', {
        override: 'Ext.ZIndexManager',
        
        hide: function() {
            var me = this,
                activeElement = Ext.Element.getActiveElement(),
                all = me.zIndexStack.getRange(),
                len = all.length,
                i,
                comp;
    
            // If any of the components contained focus, we must restore it on show.
            me.focusRestoreElement = null;
            (me.tempHidden || (me.tempHidden = [])).length = 0;
            for (i = 0; i < len; i++) {
                comp = all[i];
                
                // Only hide currently visible floaters
                if (comp.isVisible()) {
                    if (comp.el.contains(activeElement)) {
                        me.focusRestoreElement = activeElement;
                    }
                    comp.el.hide();
                    comp.pendingShow = comp.hidden = true;
                    me.tempHidden.push(comp);
                }
            }
        },
    
        /**
         * @private
         * Restores temporarily hidden managed Components to visibility.
         */
        show: function() {
            var me = this,
                i,
                tempHidden = me.tempHidden,
                len = tempHidden ? tempHidden.length : 0,
                comp;
    
            for (i = 0; i < len; i++) {
                comp = tempHidden[i];
                comp.hidden = false;
                if (comp.pendingShow) {
                    comp.el.show();
                    comp.pendingShow = false;
                    comp.setPosition(comp.x, comp.y);
                    comp.onFloatShow();
                }
                // An attempt at hiding while temp hidden
                // has cleared the pendingShow flag. Hide it
                // properly with full event flow now.
                else {
                    comp.hide();
                }
            }
            me.tempHidden = null;
            if (me.focusRestoreElement) {
                me.focusRestoreElement.focus();
            }
        }
    });
    This fix doesn't seem to work on IE and Edge browser.

Similar Threads

  1. Popup window going outside of main window on resize.
    By chetan.nellekeri in forum Ext: Q&A
    Replies: 5
    Last Post: 16 May 2014, 5:05 AM
  2. Window object reloads content on move, resize
    By Manuel Elaraj in forum Ext GWT: Discussion
    Replies: 1
    Last Post: 5 Jun 2011, 4:10 AM
  3. [FIXED] Resize/move a Window over an iframe has problems
    By raintrain in forum Ext GWT: Bugs (1.x)
    Replies: 4
    Last Post: 22 May 2009, 3:41 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •