Bug 1451400 - Part 2 - Migrate dropmarker XBL to a Custom Element;r=dao draft
authorBrian Grinstead <bgrinstead@mozilla.com>
Thu, 17 May 2018 10:54:33 -0700
changeset 796442 44e7c0db1fc62414c44f9591c4e3773da6a54244
parent 796441 89cdd0c757a8a2aeacd14cf51c3f9b4cb2ada27c
push id110261
push userbgrinstead@mozilla.com
push dateThu, 17 May 2018 17:54:44 +0000
reviewersdao
bugs1451400
milestone62.0a1
Bug 1451400 - Part 2 - Migrate dropmarker XBL to a Custom Element;r=dao MozReview-Commit-ID: 2KnfOiTPyer
toolkit/content/widgets/general.js
toolkit/content/widgets/general.xml
toolkit/content/xul.css
--- a/toolkit/content/widgets/general.js
+++ b/toolkit/content/widgets/general.js
@@ -30,9 +30,22 @@ class MozDeck extends XULElement {
 
   get selectedPanel() {
     return this.childNodes[this.selectedIndex];
   }
 }
 
 customElements.define("deck", MozDeck);
 
+class MozDropmarker extends XULElement {
+  connectedCallback() {
+    // Only create the image the first time we are connected
+    if (!this.firstChild) {
+      let image = document.createElement("image");
+      image.classList.add("dropmarker-icon");
+      this.appendChild(image);
+    }
+  }
 }
+
+customElements.define("dropmarker", MozDropmarker);
+
+}
--- a/toolkit/content/widgets/general.xml
+++ b/toolkit/content/widgets/general.xml
@@ -75,15 +75,9 @@
       <property name="webNavigation"
                 onget="return this.docShell.QueryInterface(Components.interfaces.nsIWebNavigation);"
                 readonly="true"/>
       <property name="contentDocument" readonly="true"
                 onget="return this.webNavigation.document;"/>
     </implementation>
   </binding>
 
-  <binding id="dropmarker" extends="xul:button">
-    <content>
-      <xul:image class="dropmarker-icon"/>
-    </content>
-  </binding>
-
 </bindings>
--- a/toolkit/content/xul.css
+++ b/toolkit/content/xul.css
@@ -823,18 +823,18 @@ menulist > menupopup > menuitem {
 }
 
 html|*.menulist-editable-input {
   -moz-appearance: none !important;
   background: transparent ! important;
   -moz-box-flex: 1;
 }
 
-dropmarker {
-  -moz-binding: url("chrome://global/content/bindings/general.xml#dropmarker");
+dropmarker > .dropmarker-icon {
+  pointer-events: none;
 }
 
 /********** splitter **********/
 
 .tree-splitter {
   width: 0px;
   max-width: 0px;
   min-width: 0% ! important;