Reviewed by John.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 18 May 2007 20:33:57 +0000 (20:33 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 18 May 2007 20:33:57 +0000 (20:33 +0000)
        <rdar://problem/5204792> REGRESSION (r21367): System widgets are drawn with vertical/horizontal scroll bars

        No test because the bug requires calling setAllowsScrolling: to reproduce.

        * WebView/WebFrameView.mm:
        (-[WebFrameView setAllowsScrolling:]): Update the FrameView's scroll state as well as the one
        on WebDynamicScrollBarsView, otherwise this setting won't stick if the frame has already loaded
        a document.

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

WebKit/ChangeLog
WebKit/WebView/WebFrameView.mm

index 94995d8..f2fbb63 100644 (file)
@@ -1,3 +1,16 @@
+2007-05-18  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by John.
+        
+        <rdar://problem/5204792> REGRESSION (r21367): System widgets are drawn with vertical/horizontal scroll bars
+        
+        No test because the bug requires calling setAllowsScrolling: to reproduce.
+
+        * WebView/WebFrameView.mm:
+        (-[WebFrameView setAllowsScrolling:]): Update the FrameView's scroll state as well as the one
+        on WebDynamicScrollBarsView, otherwise this setting won't stick if the frame has already loaded
+        a document.
+
 2007-05-18  Geoffrey Garen  <ggaren@apple.com>
 
         Fixed spelling error.
index 7a408db..ba39d53 100644 (file)
@@ -57,6 +57,7 @@
 #import <JavaScriptCore/Assertions.h>
 #import <WebCore/DragController.h>
 #import <WebCore/Frame.h>
+#import <WebCore/FrameView.h>
 #import <WebCore/HistoryItem.h>
 #import <WebCore/Page.h>
 #import <WebCore/WebCoreFrameView.h>
@@ -345,7 +346,13 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl
 
 - (void)setAllowsScrolling:(BOOL)flag
 {
-    [(WebDynamicScrollBarsView *)[self _scrollView] setAllowsScrolling:flag];
+    WebDynamicScrollBarsView *scrollView = (WebDynamicScrollBarsView *)[self _scrollView];
+    [scrollView setAllowsScrolling:flag];
+    WebCore::Frame *frame = core([self webFrame]);
+    if (WebCore::FrameView *view = frame? frame->view() : 0) {
+        view->setHScrollbarMode((WebCore::ScrollbarMode)[scrollView horizontalScrollingMode]);
+        view->setVScrollbarMode((WebCore::ScrollbarMode)[scrollView verticalScrollingMode]);
+    }
 }
 
 - (BOOL)allowsScrolling