[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:24 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 30b7f096b42fa1d9f1865b4710aae5cbb08a1ebb
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 25 01:20:27 2002 +0000

    	- fixed 3059513 -- REGRESSION: Scrolling to fragment doesn't work
    
    	Turns out it was better to just put the extra smarts into the clip view
    	that we are already creating. Making WebHTMLView be a second clip view
    	was silly and broke things.
    
            * WebView.subproj/WebView.m: (-[WebView initWithFrame:]): Create a WebClipView
    	and use it as the content view rather than the NSClipView created by default.
    
            * WebKit.pbproj/project.pbxproj: Added WebClipView.
            * WebView.subproj/WebClipView.h: Added.
            * WebView.subproj/WebClipView.m: Added.
    
            * WebView.subproj/WebHTMLView.h: Don't be a subclass of NSClipView any more.
            * WebView.subproj/WebHTMLView.m:
            (-[WebHTMLView drawRect:]): Call setAdditionalClip and resetAdditionalClip on
    	the clip view.
    
            * WebView.subproj/WebHTMLViewPrivate.h: Remove inDrawRect and drawRect.
            * WebView.subproj/WebHTMLViewPrivate.m: Remove visibleRect override. This is
    	now in WebClipView.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2156 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 5feca41..bfc8350 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,27 @@
+2002-09-24  Darin Adler  <darin at apple.com>
+
+	- fixed 3059513 -- REGRESSION: Scrolling to fragment doesn't work
+
+	Turns out it was better to just put the extra smarts into the clip view
+	that we are already creating. Making WebHTMLView be a second clip view
+	was silly and broke things.
+
+        * WebView.subproj/WebView.m: (-[WebView initWithFrame:]): Create a WebClipView
+	and use it as the content view rather than the NSClipView created by default.
+
+        * WebKit.pbproj/project.pbxproj: Added WebClipView.
+        * WebView.subproj/WebClipView.h: Added.
+        * WebView.subproj/WebClipView.m: Added.
+
+        * WebView.subproj/WebHTMLView.h: Don't be a subclass of NSClipView any more.
+        * WebView.subproj/WebHTMLView.m:
+        (-[WebHTMLView drawRect:]): Call setAdditionalClip and resetAdditionalClip on
+	the clip view.
+
+        * WebView.subproj/WebHTMLViewPrivate.h: Remove inDrawRect and drawRect.
+        * WebView.subproj/WebHTMLViewPrivate.m: Remove visibleRect override. This is
+	now in WebClipView.
+
 2002-09-24  Chris Blumenberg  <cblu at apple.com>
 
 	More documentation changes.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 5feca41..bfc8350 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,27 @@
+2002-09-24  Darin Adler  <darin at apple.com>
+
+	- fixed 3059513 -- REGRESSION: Scrolling to fragment doesn't work
+
+	Turns out it was better to just put the extra smarts into the clip view
+	that we are already creating. Making WebHTMLView be a second clip view
+	was silly and broke things.
+
+        * WebView.subproj/WebView.m: (-[WebView initWithFrame:]): Create a WebClipView
+	and use it as the content view rather than the NSClipView created by default.
+
+        * WebKit.pbproj/project.pbxproj: Added WebClipView.
+        * WebView.subproj/WebClipView.h: Added.
+        * WebView.subproj/WebClipView.m: Added.
+
+        * WebView.subproj/WebHTMLView.h: Don't be a subclass of NSClipView any more.
+        * WebView.subproj/WebHTMLView.m:
+        (-[WebHTMLView drawRect:]): Call setAdditionalClip and resetAdditionalClip on
+	the clip view.
+
+        * WebView.subproj/WebHTMLViewPrivate.h: Remove inDrawRect and drawRect.
+        * WebView.subproj/WebHTMLViewPrivate.m: Remove visibleRect override. This is
+	now in WebClipView.
+
 2002-09-24  Chris Blumenberg  <cblu at apple.com>
 
 	More documentation changes.
diff --git a/WebKit/WebKit.pbproj/project.pbxproj b/WebKit/WebKit.pbproj/project.pbxproj
index b4b2501..bf64b88 100644
--- a/WebKit/WebKit.pbproj/project.pbxproj
+++ b/WebKit/WebKit.pbproj/project.pbxproj
@@ -276,6 +276,7 @@
 				5152FAE7033FC52200CA2ACD,
 				5152FAEA033FC53500CA2ACD,
 				511D5554033FD51000CA2ACD,
+				933D659B03413FF2008635CE,
 			);
 			isa = PBXHeadersBuildPhase;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -364,6 +365,7 @@
 				5152FAE2033FC50400CA2ACD,
 				5152FAE4033FC50400CA2ACD,
 				5152FAE8033FC52200CA2ACD,
+				933D659C03413FF2008635CE,
 			);
 			isa = PBXSourcesBuildPhase;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1299,6 +1301,30 @@
 			settings = {
 			};
 		};
+		933D659903413FF2008635CE = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = WebClipView.h;
+			refType = 4;
+		};
+		933D659A03413FF2008635CE = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = WebClipView.m;
+			refType = 4;
+		};
+		933D659B03413FF2008635CE = {
+			fileRef = 933D659903413FF2008635CE;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		933D659C03413FF2008635CE = {
+			fileRef = 933D659A03413FF2008635CE;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
 		93AEB17D032C1735008635CE = {
 			fileEncoding = 4;
 			isa = PBXFileReference;
@@ -1380,6 +1406,8 @@
 				5152FAE6033FC52200CA2ACD,
 				5152FAE9033FC53500CA2ACD,
 				511D5553033FD51000CA2ACD,
+				933D659903413FF2008635CE,
+				933D659A03413FF2008635CE,
 			);
 			isa = PBXGroup;
 			name = WebView;
diff --git a/WebKit/WebView.subproj/WebClipView.h b/WebKit/WebView.subproj/WebClipView.h
new file mode 100644
index 0000000..0021284
--- /dev/null
+++ b/WebKit/WebView.subproj/WebClipView.h
@@ -0,0 +1,20 @@
+//
+//  WebClipView.h
+//  WebKit
+//
+//  Created by Darin Adler on Tue Sep 24 2002.
+//  Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+
+#import <AppKit/AppKit.h>
+
+ at interface WebClipView : NSClipView
+{
+    BOOL _haveAdditionalClip;
+    NSRect _additionalClip;
+}
+
+- (void)setAdditionalClip:(NSRect)additionalClip;
+- (void)resetAdditionalClip;
+
+ at end
diff --git a/WebKit/WebView.subproj/WebClipView.m b/WebKit/WebView.subproj/WebClipView.m
new file mode 100644
index 0000000..07ee60e
--- /dev/null
+++ b/WebKit/WebView.subproj/WebClipView.m
@@ -0,0 +1,33 @@
+//
+//  WebClipView.m
+//  WebKit
+//
+//  Created by Darin Adler on Tue Sep 24 2002.
+//  Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
+//
+
+#import "WebClipView.h"
+
+ at implementation WebClipView
+
+- (void)resetAdditionalClip
+{
+    _haveAdditionalClip = NO;
+}
+
+- (void)setAdditionalClip:(NSRect)additionalClip
+{
+    _haveAdditionalClip = YES;
+    _additionalClip = additionalClip;
+}
+
+- (NSRect)visibleRect
+{
+    NSRect rect = [super visibleRect];
+    if (_haveAdditionalClip) {
+        rect = NSIntersectionRect(rect, _additionalClip);
+    }
+    return rect;
+}
+
+ at end
diff --git a/WebKit/WebView.subproj/WebFrameView.m b/WebKit/WebView.subproj/WebFrameView.m
index 2b3c00a..94bc99a 100644
--- a/WebKit/WebView.subproj/WebFrameView.m
+++ b/WebKit/WebView.subproj/WebFrameView.m
@@ -4,6 +4,7 @@
 
 #import <WebKit/WebView.h>
 
+#import <WebKit/WebClipView.h>
 #import <WebKit/WebCookieAdapter.h>
 #import <WebKit/WebController.h>
 #import <WebKit/WebDataSource.h>
@@ -67,6 +68,7 @@ enum {
 
     WebDynamicScrollBarsView *scrollView  = [[WebDynamicScrollBarsView alloc] initWithFrame: NSMakeRect(0,0,frame.size.width,frame.size.height)];
     _private->frameScrollView = scrollView;
+    [scrollView setContentView: [[[WebClipView alloc] initWithFrame:[scrollView bounds]] autorelease]];
     [scrollView setDrawsBackground: NO];
     [scrollView setHasVerticalScroller: NO];
     [scrollView setHasHorizontalScroller: NO];
diff --git a/WebKit/WebView.subproj/WebHTMLView.h b/WebKit/WebView.subproj/WebHTMLView.h
index 4455dd8..067117e 100644
--- a/WebKit/WebView.subproj/WebHTMLView.h
+++ b/WebKit/WebView.subproj/WebHTMLView.h
@@ -17,7 +17,7 @@
     @class WebHTMLView
     @discussion A document view of WebView that displays HTML content.
 */
- at interface WebHTMLView : NSClipView <WebDocumentView, WebDocumentDragSettings, WebDocumentSearching, WebDocumentTextEncoding>
+ at interface WebHTMLView : NSView <WebDocumentView, WebDocumentDragSettings, WebDocumentSearching, WebDocumentTextEncoding>
 {
 @private
     WebHTMLViewPrivate *_private;
diff --git a/WebKit/WebView.subproj/WebHTMLView.m b/WebKit/WebView.subproj/WebHTMLView.m
index cef10ec..1e0fcb8 100644
--- a/WebKit/WebView.subproj/WebHTMLView.m
+++ b/WebKit/WebView.subproj/WebHTMLView.m
@@ -6,6 +6,7 @@
 #import <WebKit/WebHTMLView.h>
 
 #import <WebKit/WebBridge.h>
+#import <WebKit/WebClipView.h>
 #import <WebKit/WebContextMenuDelegate.h>
 #import <WebKit/WebController.h>
 #import <WebKit/WebControllerPrivate.h>
@@ -119,11 +120,6 @@
     return YES;
 }
 
-- (BOOL)needsPanelToBecomeKey
-{
-    return YES;
-}
-
 - (void)addMouseMovedObserver
 {
     [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(mouseMovedNotification:) name: NSMouseMovedNotification object: nil];
@@ -355,10 +351,6 @@
         }
     }
     
-    ASSERT(!_private->inDrawRect);
-    _private->inDrawRect = YES;
-    _private->drawRect = rect;
-
     [self reapplyStyles];
 
     [self layout];
@@ -370,6 +362,9 @@
     [NSGraphicsContext saveGraphicsState];
     NSRectClip(rect);
 
+    ASSERT([[self superview] isKindOfClass:[WebClipView class]]);
+    [(WebClipView *)[self superview] setAdditionalClip:rect];
+    
     NSView *focusView = [NSView focusView];
     if ([WebTextRenderer shouldBufferTextDrawing] && focusView)
         [[WebTextRendererFactory sharedFactory] startCoalesceTextDrawing];
@@ -381,6 +376,8 @@
     if ([WebTextRenderer shouldBufferTextDrawing] && focusView)
         [[WebTextRendererFactory sharedFactory] endCoalesceTextDrawing];
 
+    [(WebClipView *)[self superview] resetAdditionalClip];
+    
     [NSGraphicsContext restoreGraphicsState];
 
 #ifdef DEBUG_LAYOUT
@@ -406,9 +403,6 @@
     LOG(Timing, "%s draw seconds = %f", widget->part()->baseURL().URL().latin1(), thisTime);
 #endif
 
-    ASSERT(_private->inDrawRect);
-    _private->inDrawRect = NO;
-
     if (_private->subviewsSetAside) {
         ASSERT(_private->savedSubviews == nil);
         _private->savedSubviews = _subviews;
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.h b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
index fd2f01c..f7b3839 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.h
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
@@ -27,9 +27,6 @@
     
     id savedSubviews;
     BOOL subviewsSetAside;
-    
-    BOOL inDrawRect;
-    NSRect drawRect;
 }
 @end
 
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.m b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
index 4c48b8c..ba368d9 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.m
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
@@ -212,15 +212,6 @@ BOOL _modifierTrackingEnabled = FALSE;
     }
 }
 
-- (NSRect)visibleRect
-{
-    NSRect rect = [super visibleRect];
-    if (_private->inDrawRect) {
-        rect = NSIntersectionRect(rect, _private->drawRect);
-    }
-    return rect;
-}
-
 @end
 
 @implementation NSView (WebHTMLViewPrivate)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list