Title: [227661] branches/safari-605-branch/Source/WebInspectorUI

Diff

Modified: branches/safari-605-branch/Source/WebInspectorUI/ChangeLog (227660 => 227661)


--- branches/safari-605-branch/Source/WebInspectorUI/ChangeLog	2018-01-26 05:03:16 UTC (rev 227660)
+++ branches/safari-605-branch/Source/WebInspectorUI/ChangeLog	2018-01-26 05:03:19 UTC (rev 227661)
@@ -1,5 +1,35 @@
 2018-01-25  Jason Marcell  <[email protected]>
 
+        Cherry-pick r227585. rdar://problem/36873363
+
+    2018-01-24  Nikita Vasilyev  <[email protected]>
+
+            REGRESSION (r226994): Web Inspector: Styles: Suggestions popover floats in top-left corner of Web Inspector after tabbing
+            https://bugs.webkit.org/show_bug.cgi?id=182027
+
+            Reviewed by Matt Baker.
+
+            r226994 added a layout of all properties on property removal. Layout caused
+            a property element to be removed from DOM right before dislaying the suggestion
+            popover, resulting in the popover being displayed at the top left corner.
+
+            * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
+            (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
+            (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
+            Only update property view indices when a property is removed.
+
+            * UserInterface/Views/SpreadsheetStyleProperty.js:
+            (WI.SpreadsheetStyleProperty):
+            (WI.SpreadsheetStyleProperty.prototype.set index):
+
+            * UserInterface/Views/SpreadsheetTextField.js:
+            (WI.SpreadsheetTextField.prototype._updateCompletions):
+            Checking this._element.parentNode to see if the element is attached to the DOM tree is unreliable,
+            since the element may have a non-null parent node that is detached from the DOM tree. To fix that,
+            we could traverse element's ancestors, but I used a concise isConnected property instead.
+
+2018-01-25  Jason Marcell  <[email protected]>
+
         Cherry-pick r227572. rdar://problem/36873386
 
     2018-01-24  Joseph Pecoraro  <[email protected]>

Modified: branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js (227660 => 227661)


--- branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js	2018-01-26 05:03:16 UTC (rev 227660)
+++ branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js	2018-01-26 05:03:19 UTC (rev 227661)
@@ -74,7 +74,8 @@
         let propertyViewPendingStartEditing = null;
         for (let index = 0; index < properties.length; index++) {
             let property = properties[index];
-            let propertyView = new WI.SpreadsheetStyleProperty(this, property, index);
+            let propertyView = new WI.SpreadsheetStyleProperty(this, property);
+            propertyView.index = index;
             this.element.append(propertyView.element);
             this._propertyViews.push(propertyView);
 
@@ -256,7 +257,9 @@
     spreadsheetStylePropertyRemoved(propertyView)
     {
         this._propertyViews.remove(propertyView);
-        this.updateLayout();
+
+        for (let index = 0; index < this._propertyViews.length; index++)
+            this._propertyViews[index].index = index;
     }
 
     stylePropertyInlineSwatchActivated()

Modified: branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js (227660 => 227661)


--- branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js	2018-01-26 05:03:16 UTC (rev 227660)
+++ branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js	2018-01-26 05:03:19 UTC (rev 227661)
@@ -25,7 +25,7 @@
 
 WI.SpreadsheetStyleProperty = class SpreadsheetStyleProperty extends WI.Object
 {
-    constructor(delegate, property, index)
+    constructor(delegate, property)
     {
         super();
 
@@ -34,7 +34,6 @@
         this._delegate = delegate || null;
         this._property = property;
         this._element = document.createElement("div");
-        this._element.dataset.propertyIndex = index;
 
         this._contentElement = null;
         this._nameElement = null;
@@ -59,6 +58,11 @@
     get valueTextField() { return this._valueTextField; }
     get enabled() { return this._property.enabled; }
 
+    set index(index)
+    {
+        this._element.dataset.propertyIndex = index;
+    }
+
     detached()
     {
         this._property.__propertyView = null;

Modified: branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js (227660 => 227661)


--- branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js	2018-01-26 05:03:16 UTC (rev 227660)
+++ branches/safari-605-branch/Source/WebInspectorUI/UserInterface/Views/SpreadsheetTextField.js	2018-01-26 05:03:19 UTC (rev 227661)
@@ -365,8 +365,8 @@
             return;
         }
 
-        console.assert(this._element.parentNode, "_updateCompletions got called after SpreadsheetTextField was removed from the DOM");
-        if (!this._element.parentNode) {
+        console.assert(this._element.isConnected, "SpreadsheetTextField already removed from the DOM.");
+        if (!this._element.isConnected) {
             this._suggestionsView.hide();
             return;
         }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to