[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:44:36 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 94978503a1233dfb6606299d4e76dbe27a905b85
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 25 15:50:45 2002 +0000

    	Make the "set aside subviews" logic stronger so it can handle a display
    	while inside drawRect. But note, this recursive display is most likely
    	the cause of the redrawing problems we have while resizing, like bug 2969367.
    
            * WebView.subproj/WebHTMLView.m:
            (-[WebHTMLView drawRect:]): Restore views and then set them aside again, but don't
    	leave the "views set aside" boolean set.
            * WebView.subproj/WebHTMLViewPrivate.h: Add private _setAsideSubviews and _restoreSubviews methods.
            * WebView.subproj/WebHTMLViewPrivate.m:
            (-[WebHTMLView _setAsideSubviews]): Added.
            (-[WebHTMLView _restoreSubviews]): Added.
            (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
    	Use the new _setAsideSubviews and _restoreSubviews methods.
            (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]): Ditto.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2163 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index c0d48ce..0b51486 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,20 @@
+2002-09-25  Darin Adler  <darin at apple.com>
+
+	Make the "set aside subviews" logic stronger so it can handle a display
+	while inside drawRect. But note, this recursive display is most likely
+	the cause of the redrawing problems we have while resizing, like bug 2969367.
+
+        * WebView.subproj/WebHTMLView.m:
+        (-[WebHTMLView drawRect:]): Restore views and then set them aside again, but don't
+	leave the "views set aside" boolean set.
+        * WebView.subproj/WebHTMLViewPrivate.h: Add private _setAsideSubviews and _restoreSubviews methods.
+        * WebView.subproj/WebHTMLViewPrivate.m:
+        (-[WebHTMLView _setAsideSubviews]): Added.
+        (-[WebHTMLView _restoreSubviews]): Added.
+        (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
+	Use the new _setAsideSubviews and _restoreSubviews methods.
+        (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]): Ditto.
+
 2002-09-25  Ken Kocienda  <kocienda at apple.com>
 
         Removed this method from WebResourceHandle:
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index c0d48ce..0b51486 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,20 @@
+2002-09-25  Darin Adler  <darin at apple.com>
+
+	Make the "set aside subviews" logic stronger so it can handle a display
+	while inside drawRect. But note, this recursive display is most likely
+	the cause of the redrawing problems we have while resizing, like bug 2969367.
+
+        * WebView.subproj/WebHTMLView.m:
+        (-[WebHTMLView drawRect:]): Restore views and then set them aside again, but don't
+	leave the "views set aside" boolean set.
+        * WebView.subproj/WebHTMLViewPrivate.h: Add private _setAsideSubviews and _restoreSubviews methods.
+        * WebView.subproj/WebHTMLViewPrivate.m:
+        (-[WebHTMLView _setAsideSubviews]): Added.
+        (-[WebHTMLView _restoreSubviews]): Added.
+        (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
+	Use the new _setAsideSubviews and _restoreSubviews methods.
+        (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]): Ditto.
+
 2002-09-25  Ken Kocienda  <kocienda at apple.com>
 
         Removed this method from WebResourceHandle:
diff --git a/WebKit/WebView.subproj/WebHTMLView.m b/WebKit/WebView.subproj/WebHTMLView.m
index 1e0fcb8..bf8041b 100644
--- a/WebKit/WebView.subproj/WebHTMLView.m
+++ b/WebKit/WebView.subproj/WebHTMLView.m
@@ -338,10 +338,9 @@
 {
     LOG(View, "%@ drawing", self);
     
-    if (_private->savedSubviews) {
-        ASSERT(_subviews == nil);
-        _subviews = _private->savedSubviews;
-        _private->savedSubviews = nil;
+    BOOL subviewsWereSetAside = _private->subviewsSetAside;
+    if (subviewsWereSetAside) {
+        [self _restoreSubviews];
     }
     
     if ([self inLiveResize]) {
@@ -403,10 +402,8 @@
     LOG(Timing, "%s draw seconds = %f", widget->part()->baseURL().URL().latin1(), thisTime);
 #endif
 
-    if (_private->subviewsSetAside) {
-        ASSERT(_private->savedSubviews == nil);
-        _private->savedSubviews = _subviews;
-        _subviews = nil;
+    if (subviewsWereSetAside) {
+        [self _setAsideSubviews];
     }
 }
 
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.h b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
index f7b3839..bd60b55 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.h
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
@@ -43,4 +43,8 @@
 + (void)_postFlagsChangedEvent:(NSEvent *)flagsChangedEvent;
 - (NSDictionary *)_elementAtPoint:(NSPoint)point;
 - (BOOL)_continueAfterClickPolicyForEvent: (NSEvent *)event;
+
+- (void)_setAsideSubviews;
+- (void)_restoreSubviews;
+
 @end
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.m b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
index ba368d9..761adde 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.m
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
@@ -167,20 +167,18 @@ BOOL _modifierTrackingEnabled = FALSE;
     return NO;
 }
 
-// Don't let AppKit even draw subviews. We take care of that.
-- (void)_recursiveDisplayRectIfNeededIgnoringOpacity:(NSRect)rect isVisibleRect:(BOOL)isVisibleRect rectIsVisibleRectForView:(NSView *)visibleView topView:(BOOL)topView
+- (void)_setAsideSubviews
 {
-    [_subviews makeObjectsPerformSelector:@selector(_web_propagateDirtyRectToAncestor)];
-
     ASSERT(!_private->subviewsSetAside);
     ASSERT(_private->savedSubviews == nil);
     _private->savedSubviews = _subviews;
     _subviews = nil;
     _private->subviewsSetAside = YES;
-    
-    [super _recursiveDisplayRectIfNeededIgnoringOpacity:rect isVisibleRect:isVisibleRect
-        rectIsVisibleRectForView:visibleView topView:topView];
-    
+ }
+ 
+ - (void)_restoreSubviews
+ {
+    ASSERT(_private->subviewsSetAside);
     ASSERT(_subviews == nil);
     _subviews = _private->savedSubviews;
     _private->savedSubviews = nil;
@@ -188,27 +186,29 @@ BOOL _modifierTrackingEnabled = FALSE;
 }
 
 // Don't let AppKit even draw subviews. We take care of that.
+- (void)_recursiveDisplayRectIfNeededIgnoringOpacity:(NSRect)rect isVisibleRect:(BOOL)isVisibleRect rectIsVisibleRectForView:(NSView *)visibleView topView:(BOOL)topView
+{
+    [_subviews makeObjectsPerformSelector:@selector(_web_propagateDirtyRectToAncestor)];
+    [self _setAsideSubviews];
+    [super _recursiveDisplayRectIfNeededIgnoringOpacity:rect isVisibleRect:isVisibleRect
+        rectIsVisibleRectForView:visibleView topView:topView];
+    [self _restoreSubviews];
+}
+
+// Don't let AppKit even draw subviews. We take care of that.
 - (void)_recursiveDisplayAllDirtyWithLockFocus:(BOOL)needsLockFocus visRect:(NSRect)visRect
 {
-    BOOL setAsideSubviews = !_private->subviewsSetAside;
+    BOOL needToSetAsideSubviews = !_private->subviewsSetAside;
     
-    if (setAsideSubviews) {
+    if (needToSetAsideSubviews) {
         [_subviews makeObjectsPerformSelector:@selector(_web_propagateDirtyRectToAncestor)];
-
-        ASSERT(!_private->subviewsSetAside);
-        ASSERT(_private->savedSubviews == nil);
-        _private->savedSubviews = _subviews;
-        _subviews = nil;
-        _private->subviewsSetAside = YES;
+        [self _setAsideSubviews];
     }
     
     [super _recursiveDisplayAllDirtyWithLockFocus:needsLockFocus visRect:visRect];
     
-    if (setAsideSubviews) {
-        ASSERT(_subviews == nil);
-        _subviews = _private->savedSubviews;
-        _private->savedSubviews = nil;
-        _private->subviewsSetAside = NO;
+    if (needToSetAsideSubviews) {
+        [self _restoreSubviews];
     }
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list