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

rjw rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:23:10 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit b00c8c58e39fa216364a21d63bdb11d21d45e8e5
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 3 08:59:27 2002 +0000

            * kwq/KWQScrollView.mm:
            (QScrollView::addChild):
            Fixed regression that caused IFWebView frame origin to sometimes
            never be set correctly.  (khtml sets the x origin to -500000
            during initialization, and it was never getting set correctly).
            This problem manifested itself as blank white frames.
    
            * kwq/KWQWidget.mm:
            (QWidget::internalSetGeometry):
    
            * Misc.subproj/IFNSViewExtras.m:
            (-[NSView _IF_printViewHierarchy:]):
            Debugging help.
    
            * WebView.subproj/IFHTMLView.mm:
            (-[IFHTMLView layout]):
            Added setLayouted(false).
    
            * WebView.subproj/IFWebFramePrivate.mm:
            (-[IFWebFrame _isLoadComplete]):
            Tweaks attempting to fix frame drawing problems.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1504 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 907b114..32b04ea 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,15 @@
+2002-07-03  Richard Williamson  <rjw at apple.com>
+
+        * kwq/KWQScrollView.mm:
+        (QScrollView::addChild):
+        Fixed regression that caused IFWebView frame origin to sometimes
+        never be set correctly.  (khtml sets the x origin to -500000
+        during initialization, and it was never getting set correctly).
+        This problem manifested itself as blank white frames.
+        
+        * kwq/KWQWidget.mm:
+        (QWidget::internalSetGeometry):
+
 2002-07-03  Maciej Stachowiak  <mjs at apple.com>
 
 	WebKit part of fix for:
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 907b114..32b04ea 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,15 @@
+2002-07-03  Richard Williamson  <rjw at apple.com>
+
+        * kwq/KWQScrollView.mm:
+        (QScrollView::addChild):
+        Fixed regression that caused IFWebView frame origin to sometimes
+        never be set correctly.  (khtml sets the x origin to -500000
+        during initialization, and it was never getting set correctly).
+        This problem manifested itself as blank white frames.
+        
+        * kwq/KWQWidget.mm:
+        (QWidget::internalSetGeometry):
+
 2002-07-03  Maciej Stachowiak  <mjs at apple.com>
 
 	WebKit part of fix for:
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 907b114..32b04ea 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,15 @@
+2002-07-03  Richard Williamson  <rjw at apple.com>
+
+        * kwq/KWQScrollView.mm:
+        (QScrollView::addChild):
+        Fixed regression that caused IFWebView frame origin to sometimes
+        never be set correctly.  (khtml sets the x origin to -500000
+        during initialization, and it was never getting set correctly).
+        This problem manifested itself as blank white frames.
+        
+        * kwq/KWQWidget.mm:
+        (QWidget::internalSetGeometry):
+
 2002-07-03  Maciej Stachowiak  <mjs at apple.com>
 
 	WebKit part of fix for:
diff --git a/WebCore/kwq/KWQScrollView.mm b/WebCore/kwq/KWQScrollView.mm
index db00549..cee7547 100644
--- a/WebCore/kwq/KWQScrollView.mm
+++ b/WebCore/kwq/KWQScrollView.mm
@@ -196,7 +196,7 @@ void QScrollView::addChild(QWidget* child, int x, int y)
 
     KWQ_ASSERT(child != this);
 
-    if (child->x() != x || child->y() != y)
+    //if (child->x() != x || child->y() != y)
         child->move(x, y);
     
     thisView = getView();
@@ -211,6 +211,7 @@ void QScrollView::addChild(QWidget* child, int x, int y)
     // code in QWidget::internalSetGeometry.
     if ([subview conformsToProtocol:@protocol(WebCoreFrameView)]) {
         subview = [subview superview];
+        //[subview setFrameOrigin: NSMakePoint (x, y)];
     }
     
     KWQ_ASSERT(subview != thisView);
diff --git a/WebCore/kwq/KWQWidget.mm b/WebCore/kwq/KWQWidget.mm
index e84012d..377a6eb 100644
--- a/WebCore/kwq/KWQWidget.mm
+++ b/WebCore/kwq/KWQWidget.mm
@@ -319,9 +319,8 @@ void QWidget::internalSetGeometry(int x, int y, int w, int h)
     NSView *view = getView();
     
     // A QScrollView is a widget only used to represent a frame.  If
-    // has an WebCoreFrameView as it's view. When
-    // we resize it we actually want to resize it's containing view,
-    // an IFWebView.  The scrollview contained by the IFWebView
+    // this widget's view is a WebCoreFrameView the we resize it's containing
+    // view,  an IFWebView.  The scrollview contained by the IFWebView
     // will be autosized.
     if ([view conformsToProtocol:@protocol(WebCoreFrameView)]) {
         view = [view superview];
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index d6c6f1d..d62d954 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,17 @@
+2002-07-03  Richard Williamson  <rjw at apple.com>
+
+        * Misc.subproj/IFNSViewExtras.m:
+        (-[NSView _IF_printViewHierarchy:]):
+        Debugging help.
+        
+        * WebView.subproj/IFHTMLView.mm:
+        (-[IFHTMLView layout]):
+        Added setLayouted(false).
+        
+        * WebView.subproj/IFWebFramePrivate.mm:
+        (-[IFWebFrame _isLoadComplete]):
+        Tweaks attempting to fix frame drawing problems.
+
 2002-07-03  Maciej Stachowiak  <mjs at apple.com>
 
         WebCore part of fix for:
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index d6c6f1d..d62d954 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,17 @@
+2002-07-03  Richard Williamson  <rjw at apple.com>
+
+        * Misc.subproj/IFNSViewExtras.m:
+        (-[NSView _IF_printViewHierarchy:]):
+        Debugging help.
+        
+        * WebView.subproj/IFHTMLView.mm:
+        (-[IFHTMLView layout]):
+        Added setLayouted(false).
+        
+        * WebView.subproj/IFWebFramePrivate.mm:
+        (-[IFWebFrame _isLoadComplete]):
+        Tweaks attempting to fix frame drawing problems.
+
 2002-07-03  Maciej Stachowiak  <mjs at apple.com>
 
         WebCore part of fix for:
diff --git a/WebKit/Misc.subproj/IFNSViewExtras.m b/WebKit/Misc.subproj/IFNSViewExtras.m
index 70f7b9e..b5dbb91 100644
--- a/WebKit/Misc.subproj/IFNSViewExtras.m
+++ b/WebKit/Misc.subproj/IFNSViewExtras.m
@@ -1,11 +1,18 @@
 /*
-    IFNSViewExtras.mm
-	Copyright (c) 2002, Apple, Inc. All rights reserved.
+        IFNSViewExtras.mm
+        Copyright (c) 2002, Apple, Inc. All rights reserved.
 */
 
 #import <WebKit/IFNSViewExtras.h>
 #import <WebKit/IFWebView.h>
 
+#ifdef DEBUG_VIEWS
+ at interface NSObject (Foo)
+- (void*)_renderFramePart;
+- (id)frameForView: (id)aView;
+- (id)_controller;
+ at end
+#endif
 
 @implementation NSView (IFExtensions)
 
@@ -32,4 +39,33 @@
     return nil;
 }
 
+#ifdef DEBUG_VIEWS
+- (void)_IF_printViewHierarchy: (int)level
+{
+    NSArray *subviews;
+    int _level = level, i;
+    NSRect f;
+    NSView *subview;
+    void *rfp = 0;
+    
+    subviews = [self subviews];
+    _level = level;
+    while (_level-- > 0)
+        printf (" ");
+    f = [self frame];
+    
+    if ([self respondsToSelector: @selector(_controller)]){
+        id aController = [self _controller];
+        id aFrame = [aController frameForView: self];
+        rfp = [aFrame _renderFramePart];
+    }
+    
+    printf ("%s renderFramePart %p (%f,%f) w %f, h %f\n", [[[self class] className] cString], rfp, f.origin.x, f.origin.y, f.size.width, f.size.height);
+    for (i = 0; i < (int)[subviews count]; i++){
+        subview = [subviews objectAtIndex: i];
+        [subview _IF_printViewHierarchy: level + 1];
+    }
+}
+#endif
+
 @end
diff --git a/WebKit/Misc.subproj/WebNSViewExtras.m b/WebKit/Misc.subproj/WebNSViewExtras.m
index 70f7b9e..b5dbb91 100644
--- a/WebKit/Misc.subproj/WebNSViewExtras.m
+++ b/WebKit/Misc.subproj/WebNSViewExtras.m
@@ -1,11 +1,18 @@
 /*
-    IFNSViewExtras.mm
-	Copyright (c) 2002, Apple, Inc. All rights reserved.
+        IFNSViewExtras.mm
+        Copyright (c) 2002, Apple, Inc. All rights reserved.
 */
 
 #import <WebKit/IFNSViewExtras.h>
 #import <WebKit/IFWebView.h>
 
+#ifdef DEBUG_VIEWS
+ at interface NSObject (Foo)
+- (void*)_renderFramePart;
+- (id)frameForView: (id)aView;
+- (id)_controller;
+ at end
+#endif
 
 @implementation NSView (IFExtensions)
 
@@ -32,4 +39,33 @@
     return nil;
 }
 
+#ifdef DEBUG_VIEWS
+- (void)_IF_printViewHierarchy: (int)level
+{
+    NSArray *subviews;
+    int _level = level, i;
+    NSRect f;
+    NSView *subview;
+    void *rfp = 0;
+    
+    subviews = [self subviews];
+    _level = level;
+    while (_level-- > 0)
+        printf (" ");
+    f = [self frame];
+    
+    if ([self respondsToSelector: @selector(_controller)]){
+        id aController = [self _controller];
+        id aFrame = [aController frameForView: self];
+        rfp = [aFrame _renderFramePart];
+    }
+    
+    printf ("%s renderFramePart %p (%f,%f) w %f, h %f\n", [[[self class] className] cString], rfp, f.origin.x, f.origin.y, f.size.width, f.size.height);
+    for (i = 0; i < (int)[subviews count]; i++){
+        subview = [subviews objectAtIndex: i];
+        [subview _IF_printViewHierarchy: level + 1];
+    }
+}
+#endif
+
 @end
diff --git a/WebKit/WebView.subproj/IFHTMLView.mm b/WebKit/WebView.subproj/IFHTMLView.mm
index b596a3a..003db22 100644
--- a/WebKit/WebView.subproj/IFHTMLView.mm
+++ b/WebKit/WebView.subproj/IFHTMLView.mm
@@ -22,6 +22,7 @@
 #import <qpainter.h>
 #import <qevent.h>
 #import <html/html_documentimpl.h>
+#import <rendering/render_object.h>
 
 #import <KWQKHTMLPartImpl.h>
 
@@ -192,6 +193,7 @@
     double start = CFAbsoluteTimeGetCurrent();
  #endif
 
+        widget->part()->xmlDocImpl()->renderer()->setLayouted(false);
         WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s doing layout\n", DEBUG_OBJECT(self));
         widget->layout();
         _private->needsLayout = NO;
diff --git a/WebKit/WebView.subproj/IFWebFramePrivate.mm b/WebKit/WebView.subproj/IFWebFramePrivate.mm
index a4b0839..8097e22 100644
--- a/WebKit/WebView.subproj/IFWebFramePrivate.mm
+++ b/WebKit/WebView.subproj/IFWebFramePrivate.mm
@@ -368,41 +368,55 @@ static const char * const stateNames[6] = {
             if (![ds isLoading]) {
                 id mainView = [[[self controller] mainFrame] webView];
                 id mainDocumentView = [mainView documentView];
+#if 0
                 id thisView = [self webView];
                 id thisDocumentView = [thisView documentView];
-
+#endif
                 [self _setState: IFWEBFRAMESTATE_COMPLETE];
                 
                 [[ds _bridge] end];
-                
+
                 // We have to layout the main document as
                 // it may change the size of frames.
-                if ([mainView isDocumentHTML]){
-                    [mainDocumentView setNeedsLayout: YES];
+                // FIXME:  Why is this necessary? and recurse.
+                {
+                    if ([mainView isDocumentHTML]){
+                        [mainDocumentView setNeedsLayout: YES];
+                    }
+                    [mainDocumentView layout];
+                    
+                    NSArray *subFrames = [[[[self controller] mainFrame] dataSource] children];
+                    unsigned int i;
+                    id dview;
+                    for (i = 0; i < [subFrames count]; i++){
+                        dview = [[[subFrames objectAtIndex: i] webView] documentView];
+                        if ([[[subFrames objectAtIndex: i] webView] isDocumentHTML])
+                            [dview setNeedsLayout: YES];
+                        [dview layout];
+                    }
                 }
-                [mainDocumentView layout];
 
+#if 0
                 // Tell the just loaded document to layout.  This may be necessary
                 // for non-html content that needs a layout message.
                 if ([thisView isDocumentHTML]){
                     [thisDocumentView setNeedsLayout: YES];
                 }
-                [[thisView documentView] layout];
+                [thisDocumentView layout];
+
+                [thisDocumentView setNeedsDisplay: YES];
+                [thisDocumentView display];
+#endif
 
                 // Jump to anchor point, if necessary.
                 [[ds _bridge] scrollToBaseAnchor];
-                                   
+
                 // FIXME:  We have to draw the whole document hierarchy.  We should be 
                 // able to just draw the document associated with this
                 // frame, but that doesn't work.  Not sure why.
                 [mainDocumentView setNeedsDisplay: YES];
                 [mainDocumentView display];
- 
-                // This should be redundant, given the setNeedsDisplay: on the
-                // main view above.
-                [thisDocumentView setNeedsDisplay: YES];
-                [thisDocumentView display];
-                
+
                 [[ds _locationChangeHandler] locationChangeDone: [ds mainDocumentError] forDataSource:ds];
  
                 //if ([ds isDocumentHTML])
diff --git a/WebKit/WebView.subproj/WebFramePrivate.m b/WebKit/WebView.subproj/WebFramePrivate.m
index a4b0839..8097e22 100644
--- a/WebKit/WebView.subproj/WebFramePrivate.m
+++ b/WebKit/WebView.subproj/WebFramePrivate.m
@@ -368,41 +368,55 @@ static const char * const stateNames[6] = {
             if (![ds isLoading]) {
                 id mainView = [[[self controller] mainFrame] webView];
                 id mainDocumentView = [mainView documentView];
+#if 0
                 id thisView = [self webView];
                 id thisDocumentView = [thisView documentView];
-
+#endif
                 [self _setState: IFWEBFRAMESTATE_COMPLETE];
                 
                 [[ds _bridge] end];
-                
+
                 // We have to layout the main document as
                 // it may change the size of frames.
-                if ([mainView isDocumentHTML]){
-                    [mainDocumentView setNeedsLayout: YES];
+                // FIXME:  Why is this necessary? and recurse.
+                {
+                    if ([mainView isDocumentHTML]){
+                        [mainDocumentView setNeedsLayout: YES];
+                    }
+                    [mainDocumentView layout];
+                    
+                    NSArray *subFrames = [[[[self controller] mainFrame] dataSource] children];
+                    unsigned int i;
+                    id dview;
+                    for (i = 0; i < [subFrames count]; i++){
+                        dview = [[[subFrames objectAtIndex: i] webView] documentView];
+                        if ([[[subFrames objectAtIndex: i] webView] isDocumentHTML])
+                            [dview setNeedsLayout: YES];
+                        [dview layout];
+                    }
                 }
-                [mainDocumentView layout];
 
+#if 0
                 // Tell the just loaded document to layout.  This may be necessary
                 // for non-html content that needs a layout message.
                 if ([thisView isDocumentHTML]){
                     [thisDocumentView setNeedsLayout: YES];
                 }
-                [[thisView documentView] layout];
+                [thisDocumentView layout];
+
+                [thisDocumentView setNeedsDisplay: YES];
+                [thisDocumentView display];
+#endif
 
                 // Jump to anchor point, if necessary.
                 [[ds _bridge] scrollToBaseAnchor];
-                                   
+
                 // FIXME:  We have to draw the whole document hierarchy.  We should be 
                 // able to just draw the document associated with this
                 // frame, but that doesn't work.  Not sure why.
                 [mainDocumentView setNeedsDisplay: YES];
                 [mainDocumentView display];
- 
-                // This should be redundant, given the setNeedsDisplay: on the
-                // main view above.
-                [thisDocumentView setNeedsDisplay: YES];
-                [thisDocumentView display];
-                
+
                 [[ds _locationChangeHandler] locationChangeDone: [ds mainDocumentError] forDataSource:ds];
  
                 //if ([ds isDocumentHTML])
diff --git a/WebKit/WebView.subproj/WebHTMLView.m b/WebKit/WebView.subproj/WebHTMLView.m
index b596a3a..003db22 100644
--- a/WebKit/WebView.subproj/WebHTMLView.m
+++ b/WebKit/WebView.subproj/WebHTMLView.m
@@ -22,6 +22,7 @@
 #import <qpainter.h>
 #import <qevent.h>
 #import <html/html_documentimpl.h>
+#import <rendering/render_object.h>
 
 #import <KWQKHTMLPartImpl.h>
 
@@ -192,6 +193,7 @@
     double start = CFAbsoluteTimeGetCurrent();
  #endif
 
+        widget->part()->xmlDocImpl()->renderer()->setLayouted(false);
         WEBKITDEBUGLEVEL (WEBKIT_LOG_VIEW, "%s doing layout\n", DEBUG_OBJECT(self));
         widget->layout();
         _private->needsLayout = NO;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list