Fix for 3841186, scrollbar shows up disabled when it should not appear at all. ...
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Mar 2005 23:54:13 +0000 (23:54 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 Mar 2005 23:54:13 +0000 (23:54 +0000)
is never allowed to be re-entrant from any call point by moving the guard inside the function itself.

        Reviewed by John Sullivan

        * WebView.subproj/WebDynamicScrollBarsView.m:
        (-[WebDynamicScrollBarsView updateScrollers]):
        (-[WebDynamicScrollBarsView reflectScrolledClipView:]):

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

WebKit/ChangeLog
WebKit/WebView.subproj/WebDynamicScrollBarsView.m

index f24ddc015319c2e51d59be7e490b32aeaae62c27..13ccd43224322e9a8f28ff4c4bc835be8464208a 100644 (file)
@@ -1,3 +1,14 @@
+2005-03-01  David Hyatt  <hyatt@apple.com>
+
+       Fix for 3841186, scrollbar shows up disabled when it should not appear at all.  Make sure updateScrollers
+       is never allowed to be re-entrant from any call point by moving the guard inside the function itself.
+       
+        Reviewed by John Sullivan
+
+        * WebView.subproj/WebDynamicScrollBarsView.m:
+        (-[WebDynamicScrollBarsView updateScrollers]):
+        (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
+
 2005-03-02  Chris Blumenberg  <cblu@apple.com>
 
        Fixed: <rdar://problem/4029010> Expose method to retrieve drag image for WebView's selection
@@ -31,6 +42,7 @@
 
 === Safari-401 ===
 
+>>>>>>> 1.3057
 2005-03-01  John Sullivan  <sullivan@apple.com>
 
         Reviewed by Darin.
index 18febec3981085191ab70c061f19936291864c8e..71fca9448ae690ae709c7510f4bfaf7d41bf029d 100644 (file)
     // twice would indicate some kind of infinite loop, so we do it at most twice.
     // It's quite efficient to do this work twice in the normal case, so we don't bother
     // trying to figure out of the second pass is needed or not.
+    if (inUpdateScrollers)
+        return;
     
+    inUpdateScrollers = true;
+
     int pass;
     BOOL hasVerticalScroller = [self hasVerticalScroller];
     BOOL hasHorizontalScroller = [self hasHorizontalScroller];
@@ -92,6 +96,8 @@
         [[self verticalScroller] setNeedsDisplay: NO];
         [[self horizontalScroller] setNeedsDisplay: NO];
     }
+    
+    inUpdateScrollers = false;
 }
 
 // Make the horizontal and vertical scroll bars come and go as needed.
         // http://www.linuxpowered.com/archive/howto/Net-HOWTO-8.html.
         // The underlying cause is some problem in the NSText machinery, but I was not
         // able to pin it down.
-        if (!inUpdateScrollers && [[NSGraphicsContext currentContext] isDrawingToScreen]) {
-            inUpdateScrollers = YES;
+        if (!inUpdateScrollers && [[NSGraphicsContext currentContext] isDrawingToScreen])
             [self updateScrollers];
-            inUpdateScrollers = NO;
-        }
     }
     [super reflectScrolledClipView:clipView];