Bug 1348828 - Only prevent default behavior of scroll event if the tree is scrollable.
MozReview-Commit-ID: AGS103gy08O
--- a/browser/components/preferences/in-content/main.xul
+++ b/browser/components/preferences/in-content/main.xul
@@ -323,17 +323,17 @@
</vbox>
</groupbox>
<groupbox id="oneClickSearchProvidersGroup" data-category="paneGeneral">
<caption label="&oneClickSearchEngines.label;"/>
<label>&chooseWhichOneToDisplay.label;</label>
<tree id="engineList" flex="1" rows="8" hidecolumnpicker="true" editable="true"
- seltype="single">
+ seltype="single" allowunderflowscroll="true">
<treechildren id="engineChildren" flex="1"/>
<treecols>
<treecol id="engineShown" type="checkbox" editable="true" sortable="false"/>
<treecol id="engineName" flex="4" label="&engineNameColumn.label;" sortable="false"/>
<treecol id="engineKeyword" flex="1" label="&engineKeywordColumn.label;" editable="true"
sortable="false"/>
</treecols>
</tree>
--- a/toolkit/content/widgets/tree.xml
+++ b/toolkit/content/widgets/tree.xml
@@ -712,19 +712,29 @@
}
]]>
</handler>
<handler event="touchend">
<![CDATA[
this._touchY = -1;
]]>
</handler>
- <handler event="MozMousePixelScroll" preventdefault="true"/>
- <handler event="DOMMouseScroll" preventdefault="true">
+ <handler event="MozMousePixelScroll">
<![CDATA[
+ if (this.getAttribute("allowunderflowscroll") != "true" &&
+ this.getAttribute("hidevscroll") != "true")
+ event.preventDefault();
+ ]]>
+ </handler>
+ <handler event="DOMMouseScroll">
+ <![CDATA[
+ if (this.getAttribute("allowunderflowscroll") != "true" &&
+ this.getAttribute("hidevscroll") != "true")
+ event.preventDefault();
+
if (this._editingColumn)
return;
if (event.axis == event.HORIZONTAL_AXIS)
return;
var rows = event.detail;
if (rows == UIEvent.SCROLL_PAGE_UP)
this.treeBoxObject.scrollByPages(-1);