Success! Looks like we've fixed this one. According to our records the fix was applied for EXTJSIV-8719 in 4.2.0 Sprint 4 (GA).
  1. #11
    Sencha - Ext JS Dev Team Animal's Avatar
    Join Date
    Mar 2007
    Location
    Notts/Redwood City
    Posts
    30,458
    Vote Rating
    20
    Animal is a jewel in the rough Animal is a jewel in the rough Animal is a jewel in the rough

      0  

    Default


    I'll talk to Don some more about this. The 20ms setting feels about right. Have you tried it?

  2. #12
    Sencha - Community Support Team mankz's Avatar
    Join Date
    Nov 2007
    Location
    Helsingborg, Sweden
    Posts
    2,455
    Vote Rating
    48
    mankz is a jewel in the rough mankz is a jewel in the rough mankz is a jewel in the rough

      0  

    Default


    20 is decent, still doesn't feel like Chrome (any delay is noticeable).

    Btw, setting it to 0 produces an error...

  3. #13
    Sencha - Ext JS Dev Team Animal's Avatar
    Join Date
    Mar 2007
    Location
    Notts/Redwood City
    Posts
    30,458
    Vote Rating
    20
    Animal is a jewel in the rough Animal is a jewel in the rough Animal is a jewel in the rough

      0  

    Default


    That's a bug for sure. I'll create a ticket.

    Fix:

    Code:
    Ext.override(Ext.view.View, {
        afterRender: function(){
            var me = this,
                onMouseOverOut = me.mouseOverOutBuffer ? me.onMouseOverOut : me.handleMouseOverOrOut;
    
            me.callParent();
            me.mon(me.getTargetEl(), {
                scope: me,
                /*
                 * We need to make copies of this since some of the events fired here will end up triggering
                 * a new event to be called and the shared event object will be mutated. In future we should
                 * investigate if there are any issues with creating a new event object for each event that
                 * is fired.
                 */
                freezeEvent: true,
                click: me.handleEvent,
                mousedown: me.handleEvent,
                mouseup: me.handleEvent,
                dblclick: me.handleEvent,
                contextmenu: me.handleEvent,
                keydown: me.handleEvent,
                mouseover: onMouseOverOut,
                mouseout:  onMouseOverOut
            });
        }
    });

  4. #14
    Sencha - Ext JS Dev Team dongryphon's Avatar
    Join Date
    Jul 2009
    Posts
    1,033
    Vote Rating
    57
    dongryphon is a jewel in the rough dongryphon is a jewel in the rough dongryphon is a jewel in the rough

      0  

    Default


    Reducing the buffer to 20ms seems to feel pretty good - the problem with no delay is that it actually creates a real CPU hit to try to keep up with every mousemove. The delay was added because users on (cough) IE (cough) reported the CPU spike. We'll see how the new delay feels.

    Of course you (or someone else reading this) can override this in your app

    Code:
    Ext.define('MyApp.patches.view.View', {
        target: 'Ext.view.View',
    
        mouseOverOutBuffer: 0
    });
    Thanks for reporting it - let us know how the smaller buffer value feels?
    Don Griffin
    Ext JS Development Team Lead

    Check the docs. Learn how to (properly) report a framework issue and a Sencha Cmd issue

    "Use the source, Luke!"

  5. #15
    Sencha - Ext JS Dev Team dongryphon's Avatar
    Join Date
    Jul 2009
    Posts
    1,033
    Vote Rating
    57
    dongryphon is a jewel in the rough dongryphon is a jewel in the rough dongryphon is a jewel in the rough

      0  

    Default


    I see my window was stale when I posted my response :P

    I guess we just need an Ext.support.EyeCandy feature detector
    Don Griffin
    Ext JS Development Team Lead

    Check the docs. Learn how to (properly) report a framework issue and a Sencha Cmd issue

    "Use the source, Luke!"

  6. #16
    Sencha User
    Join Date
    Jun 2008
    Posts
    104
    Vote Rating
    4
    jchau is on a distinguished road

      0  

    Default


    Quote Originally Posted by Animal View Post
    Well that's possible. But trackMouseOver adds a class and fires events which form part of an API which is in wide use.

    If all you need in your app is a hover state, then you could use

    Code:
        trackMouseOver: false
    and add

    Code:
    .x-grid-row:hover .x-grid-cell {
        background-color: whatever;
    }
    This doesn't work for locking grids since there's two separate grids...

  7. #17
    Sencha - Architect Dev Team aconran's Avatar
    Join Date
    Mar 2007
    Posts
    8,185
    Vote Rating
    63
    aconran is just really nice aconran is just really nice aconran is just really nice aconran is just really nice aconran is just really nice

      1  

    Default


    The :hover approach will make IE7 truly suffer.
    Aaron Conran
    @aconran
    Sencha Architect Development Team