Bug 1348828 - Only prevent default behavior of scroll event if the tree is scrollable. r?gijs draft
authorJared Wein <jwein@mozilla.com>
Mon, 03 Apr 2017 12:43:09 -0400
changeset 555102 594e7452ceedcc6c7cfeada4986ea0cfbc6eec22
parent 555044 f30a239705a4b2df85ca72c8261b279c02d7d39c
child 622529 af663b889e18abdae4a830d4070224a073c18d28
push id52151
push userbmo:jaws@mozilla.com
push dateMon, 03 Apr 2017 16:46:02 +0000
reviewersgijs
bugs1348828
milestone55.0a1
Bug 1348828 - Only prevent default behavior of scroll event if the tree is scrollable. r?gijs MozReview-Commit-ID: HpxrZLsQ4mf
toolkit/content/widgets/tree.xml
--- a/toolkit/content/widgets/tree.xml
+++ b/toolkit/content/widgets/tree.xml
@@ -712,31 +712,36 @@
           }
         ]]>
       </handler>
       <handler event="touchend">
         <![CDATA[
           this._touchY = -1;
         ]]>
       </handler>
-      <handler event="MozMousePixelScroll" preventdefault="true"/>
-      <handler event="DOMMouseScroll" preventdefault="true">
+      <handler event="DOMMouseScroll">
         <![CDATA[
           if (this._editingColumn)
             return;
           if (event.axis == event.HORIZONTAL_AXIS)
             return;
 
+          var tree = document.getBindingParent(this);
+          if (tree.getAttribute("hidevscroll") == "true") {
+            return;
+          }
+
           var rows = event.detail;
           if (rows == UIEvent.SCROLL_PAGE_UP)
             this.treeBoxObject.scrollByPages(-1);
           else if (rows == UIEvent.SCROLL_PAGE_DOWN)
             this.treeBoxObject.scrollByPages(1);
           else
             this.treeBoxObject.scrollByLines(rows);
+          event.preventDefault();
         ]]>
       </handler>
       <handler event="MozSwipeGesture" preventdefault="true">
         <![CDATA[
           // Figure out which row to show
           let targetRow = 0;
 
           // Only handle swipe gestures up and down