Title: [193486] trunk/Source/WebInspectorUI
- Revision
- 193486
- Author
- mattba...@apple.com
- Date
- 2015-12-04 16:12:23 -0800 (Fri, 04 Dec 2015)
Log Message
Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
https://bugs.webkit.org/show_bug.cgi?id=151876
Reviewed by Brian Burg.
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView.prototype._updateShownTabs):
Removed workaround added in https://bugs.webkit.org/show_bug.cgi?id=151594.
* UserInterface/Views/View.js:
(WebInspector.View._scheduleLayoutForView):
Always perform a synchronous layout when a view that isn't descended from the
root view schedules a layout.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (193485 => 193486)
--- trunk/Source/WebInspectorUI/ChangeLog 2015-12-05 00:04:01 UTC (rev 193485)
+++ trunk/Source/WebInspectorUI/ChangeLog 2015-12-05 00:12:23 UTC (rev 193486)
@@ -1,3 +1,19 @@
+2015-12-04 Matt Baker <mattba...@apple.com>
+
+ Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
+ https://bugs.webkit.org/show_bug.cgi?id=151876
+
+ Reviewed by Brian Burg.
+
+ * UserInterface/Views/NewTabContentView.js:
+ (WebInspector.NewTabContentView.prototype._updateShownTabs):
+ Removed workaround added in https://bugs.webkit.org/show_bug.cgi?id=151594.
+
+ * UserInterface/Views/View.js:
+ (WebInspector.View._scheduleLayoutForView):
+ Always perform a synchronous layout when a view that isn't descended from the
+ root view schedules a layout.
+
2015-12-04 Brian Burg <bb...@apple.com>
Web Inspector: support runtime registration of tab type associations
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js (193485 => 193486)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js 2015-12-05 00:04:01 UTC (rev 193485)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NewTabContentView.js 2015-12-05 00:12:23 UTC (rev 193486)
@@ -138,7 +138,6 @@
return;
this._shownTabClasses = allowedTabClasses;
- this.needsLayout();
}
_allowableTabTypes()
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/View.js (193485 => 193486)
--- trunk/Source/WebInspectorUI/UserInterface/Views/View.js 2015-12-05 00:04:01 UTC (rev 193485)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/View.js 2015-12-05 00:12:23 UTC (rev 193486)
@@ -182,21 +182,31 @@
static _scheduleLayoutForView(view)
{
- // Asynchronous layouts aren't scheduled until the root view has been set.
- // If the root view hasn't been set, switch to a synchronous layout.
- if (!WebInspector.View._rootView) {
+ let isDescendantOfRoot = false;
+ let parentView = view.parentView;
+ while (parentView) {
+ parentView._dirtyDescendantsCount++;
+ if (parentView === WebInspector.View._rootView) {
+ isDescendantOfRoot = true;
+ break;
+ }
+ parentView = parentView.parentView;
+ }
+
+ // If the view is not attached to the main view tree, switch to a synchronous layout.
+ if (!isDescendantOfRoot) {
+ parentView = view.parentView;
+ while (parentView) {
+ parentView._dirtyDescendantsCount--;
+ parentView = parentView.parentView;
+ }
+
view._layoutSubtree();
return;
}
view._dirty = true;
- let parentView = view.parentView;
- while (parentView) {
- parentView._dirtyDescendantsCount++;
- parentView = parentView.parentView;
- }
-
if (WebInspector.View._scheduledLayoutUpdateIdentifier)
return;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes