Web Inspector: tab bar stutters when moving mouse after closing tab
authorbburg@apple.com <bburg@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Sep 2015 00:27:56 +0000 (00:27 +0000)
committerbburg@apple.com <bburg@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 15 Sep 2015 00:27:56 +0000 (00:27 +0000)
https://bugs.webkit.org/show_bug.cgi?id=149138

Reviewed by Joseph Pecoraro.

The tab bar lacked the 'static-layout' class between when the Promise microtask
ran and the beginning of the requestAnimationFrame. This caused a flash of
tabs that are way too wide.

Re-add the static-layout class immediately after measuring the 'after' tab size.
This code should probably just manually compute tab sizes since flexbox
layout is quite slow and our measurement code here forces layout several times.

* UserInterface/Views/TabBar.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@189763 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebInspectorUI/ChangeLog
Source/WebInspectorUI/UserInterface/Views/TabBar.js

index 3e04673..d68b74c 100644 (file)
@@ -1,5 +1,22 @@
 2015-09-14  Brian Burg  <bburg@apple.com>
 
 2015-09-14  Brian Burg  <bburg@apple.com>
 
+        Web Inspector: tab bar stutters when moving mouse after closing tab
+        https://bugs.webkit.org/show_bug.cgi?id=149138
+
+        Reviewed by Joseph Pecoraro.
+
+        The tab bar lacked the 'static-layout' class between when the Promise microtask
+        ran and the beginning of the requestAnimationFrame. This caused a flash of
+        tabs that are way too wide.
+
+        Re-add the static-layout class immediately after measuring the 'after' tab size.
+        This code should probably just manually compute tab sizes since flexbox
+        layout is quite slow and our measurement code here forces layout several times.
+
+        * UserInterface/Views/TabBar.js:
+
+2015-09-14  Brian Burg  <bburg@apple.com>
+
         Web Inspector: backend command promises are not rejected when a protocol error occurs
         https://bugs.webkit.org/show_bug.cgi?id=141403
 
         Web Inspector: backend command promises are not rejected when a protocol error occurs
         https://bugs.webkit.org/show_bug.cgi?id=141403
 
index 0351d2a..4204fb0 100644 (file)
@@ -508,6 +508,7 @@ WebInspector.TabBar = class TabBar extends WebInspector.Object
             var afterTabSizesAndPositions = this._recordTabBarItemSizesAndPositions();
 
             this._applyTabBarItemSizesAndPositions(beforeTabSizesAndPositions);
             var afterTabSizesAndPositions = this._recordTabBarItemSizesAndPositions();
 
             this._applyTabBarItemSizesAndPositions(beforeTabSizesAndPositions);
+            this.element.classList.add("static-layout");
 
             function animateTabs()
             {
 
             function animateTabs()
             {