yzt
2023-05-26 2f70f6727314edd84d8ec2bfe3ce832803f1ea77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
define(["./kernel", "../on", "../has", "../dom-geometry"], function(dojo, on, has, dom){
    // module:
    //      dojo/_base/event
 
    if(on._fixEvent){
        var fixEvent = on._fixEvent;
        on._fixEvent = function(evt, se){
            // add some additional normalization for back-compat, this isn't in on.js because it is somewhat more expensive
            evt = fixEvent(evt, se);
            if(evt){
                dom.normalizeEvent(evt);
            }
            return evt;
        };      
    }
    
    var ret = {
        // summary:
        //      This module defines dojo DOM event API.   Usually you should use dojo/on, and evt.stopPropagation() +
        //      evt.preventDefault(), rather than this module.
 
        fix: function(/*Event*/ evt, /*DOMNode*/ sender){
            // summary:
            //      normalizes properties on the event object including event
            //      bubbling methods, keystroke normalization, and x/y positions
            // evt: Event
            //      native event object
            // sender: DOMNode
            //      node to treat as "currentTarget"
            if(on._fixEvent){
                return on._fixEvent(evt, sender);
            }
            return evt; // Event
        },
    
        stop: function(/*Event*/ evt){
            // summary:
            //      prevents propagation and clobbers the default action of the
            //      passed event
            // evt: Event
            //      The event object. If omitted, window.event is used on IE.
            if(has("dom-addeventlistener") || (evt && evt.preventDefault)){
                evt.preventDefault();
                evt.stopPropagation();
            }else{
                evt = evt || window.event;
                evt.cancelBubble = true;
                on._preventDefault.call(evt);
            }
        }
    };
 
    if(has("extend-dojo")){
        dojo.fixEvent = ret.fix;
        dojo.stopEvent = ret.stop;
    }
 
    return ret;
});