Changeset 13739

Show
Ignore:
Timestamp:
05/15/08 07:45:16 (6 months ago)
Author:
doughays
Message:

Fixes #6747 #6176. Committing patch from dante to add safari mouse wheel event handling.

Location:
dijit/trunk/form
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • dijit/trunk/form/Slider.js

    r13547 r13739  
    174174                // summary 
    175175                //      decrement slider by 1 unit 
    176                 this._bumpValue(e.charOrCode == dojo.keys.PAGE_DOWN?-this.pageIncrement:-1); 
     176                this._bumpValue(e.charOrCode == dojo.keys.PAGE_DOWN ? -this.pageIncrement : -1); 
    177177        }, 
    178178 
     
    180180                // summary 
    181181                //      increment slider by 1 unit 
    182                 this._bumpValue(e.charOrCode == dojo.keys.PAGE_UP?this.pageIncrement:1); 
     182                this._bumpValue(e.charOrCode == dojo.keys.PAGE_UP ? this.pageIncrement : 1); 
    183183        }, 
    184184 
    185185        _mouseWheeled: function(/*Event*/ evt){ 
     186                // summary: Event handler for mousewheel where supported 
    186187                dojo.stopEvent(evt); 
    187                 var scrollAmount = 0; 
    188                 if(typeof evt.wheelDelta == 'number'){ // IE 
    189                         scrollAmount = evt.wheelDelta; 
    190                 }else if(typeof evt.detail == 'number'){ // Mozilla+Firefox 
    191                         scrollAmount = -evt.detail; 
    192                 } 
    193                 if(scrollAmount > 0){ 
    194                         this.increment(evt); 
    195                 }else if(scrollAmount < 0){ 
    196                         this.decrement(evt); 
    197                 } 
     188                // FIXME: this adds mouse wheel support for safari, though stopEvent doesn't prevent 
     189                // it from bleeding to window?! 
     190                var janky = !dojo.isMozilla; 
     191                var scroll = evt[(janky ? "wheelDelta" : "detail")] * (janky ? 1 : -1); 
     192                this[(scroll < 0 ? "decrement" : "increment")](evt); 
    198193        }, 
    199194 
     
    211206                        this.decrementButton.style.display=""; 
    212207                } 
    213                 this.connect(this.domNode, dojo.isIE ? "onmousewheel" : 'DOMMouseScroll', "_mouseWheeled"); 
     208                this.connect(this.domNode, !dojo.isMozilla ? "onmousewheel" : "DOMMouseScroll", "_mouseWheeled"); 
    214209 
    215210                // define a custom constructor for a SliderMover that points back to me 
  • dijit/trunk/form/_Spinner.js

    r13547 r13739  
    6565                _wheelTimer: null, 
    6666                _mouseWheeled: function(/*Event*/ evt){ 
    67  
    68                         dojo.stopEvent(evt);                     
    69                         var scrollAmount = evt[(dojo.isIE ? "wheelDelta" : "detail")] * (dojo.isIE ? 1 : -1); 
     67                        // summary: Mouse wheel listener where supported 
     68                        dojo.stopEvent(evt);     
     69                        // FIXME: Safari bubbles 
     70                        var janky = !dojo.isMozilla;             
     71                        var scrollAmount = evt[(janky ? "wheelDelta" : "detail")] * (janky ? 1 : -1); 
    7072                        if(scrollAmount !== 0){ 
    7173                                var node = this[(scrollAmount > 0 ? "upArrowNode" : "downArrowNode" )]; 
     
    8688 
    8789                        // extra listeners 
    88                         this.connect(this.textbox, dojo.isIE ? "onmousewheel" : 'DOMMouseScroll', "_mouseWheeled"); 
     90                        this.connect(this.domNode, !dojo.isMozilla ? "onmousewheel" : 'DOMMouseScroll', "_mouseWheeled"); 
    8991                        this._connects.push(dijit.typematic.addListener(this.upArrowNode, this.textbox, {charOrCode:dojo.keys.UP_ARROW,ctrlKey:false,altKey:false,shiftKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout)); 
    9092                        this._connects.push(dijit.typematic.addListener(this.downArrowNode, this.textbox, {charOrCode:dojo.keys.DOWN_ARROW,ctrlKey:false,altKey:false,shiftKey:false}, this, "_typematicCallback", this.timeoutChangeRate, this.defaultTimeout));