jeudi 30 octobre 2014

ignoreRightMouseSelection:true (DataViewModel, RowModel) problem with some browsers



  1. Thank you for reporting this bug. We will make it our priority to review this report.







  2. Default ignoreRightMouseSelection:true (DataViewModel, RowModel) problem with some browsers



    ignoreRightMouseSelection:true (DataViewModel, RowModel) problem with some browsers





    I fixed this issue myself but I think this should be resolved in the library.

    The problem description:




    On IE 8 and possibly IE 9, e.button comes undefined so ignoreRightMouseSelection check

    in original vetoSelection function is ignored, this fixes the button property before calling parent.

    Also on Mac and iOS safari, the selections in DataView occur early before click event. This is because

    an event named focusenter occurs (even before mousedown event) and original function vetos

    the selection only if the event is mousedown. This fix vetoes the selection when the event is focusenter too.

    So the selections in DataView will be enforced upon click only (not upon right click) as expected.

    This effects both dataview, gridpanel, treepanel (RowModel inherits DataViewModel from now on)



    Here is the fix:


    Code:



    //Target: 5.0.2.1411
    //On IE 8 and possibly IE 9, e.button comes undefined so ignoreRightMouseSelection check
    //in original vetoSelection function is ignored, this fixes the button property before calling parent.
    //Also on Mac and iOS safari, the selections in DataView occur early before click event. This is because
    //an event named focusenter occurs (even before mousedown event) and original function vetos
    //the selection only if the event is mousedown. This fix vetoes the selection when the event is focusenter too.
    //So the selections in DataView will be enforced upon click only (not upon right click) as expected.
    //This effects both dataview, gridpanel, treepanel (RowModel inherits DataViewModel from now on)


    Ext.override(Ext.selection.DataViewModel, {
    vetoSelection: function (e) {
    if (e.button === undefined)
    e.button = e.browserEvent.button;

    return (e.type === "focusenter") || this.callParent(arguments);
    }
    });








    Last edited by gtdev; Today at 9:43 AM.


    Reason: copied description to post body











ignoreRightMouseSelection:true (DataViewModel, RowModel) problem with some browsers

Aucun commentaire:

Enregistrer un commentaire