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

kocienda kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:55:31 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit e1f7d82ec9edda284ca33f1c3873e0a2986b9da3
Author: kocienda <kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Sep 5 20:00:35 2003 +0000

    WebCore:
    
            Reviewed by Darin
    
    	Fix for this bug:
    
    	<rdar://problem/3226083>: REGRESSION (Panther): white box
    	overlaying select lists at nvidia.com drivers page
    
            * kwq/KWQListBox.mm:
            (QListBox::QListBox): Re-add releaseGState fix that Darin
    	added, but then removed. It turns out that we do need
    	this workaround in place to get proper drawing.
    
    	Fix for this bug:
    
    	<rdar://problem/3310943>: REGRESSION (Panther): textareas
    	in forms sometimes draw blank (bugreporter)
    
            * kwq/KWQTextArea.mm:
            (-[KWQTextArea initWithFrame:]): Same fix as above.
    
    WebKit:
    
            Reviewed by Darin
    
    	Incorporate releaseGState fix that Darin developed for
    	textareas and list boxes in WebCore. It turns out that
    	we this workaround in WebClipView as well to get proper
    	drawing of subframes.
    
    	In addition, removed some tests that which performed
    	runtime checks for code in AppKit. AppKit will have
    	the checked-for code in all versions that will be used
    	with the version of WebKit.
    
            * WebView.subproj/WebClipView.m:
            (-[WebClipView initWithFrame:])
            (-[WebClipView resetAdditionalClip])
            (-[WebClipView setAdditionalClip:])
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4946 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index a1e30c2..a133e0b 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,25 @@
+2003-09-05  Ken Kocienda  <kocienda at apple.com>
+
+        Reviewed by Darin
+
+	Fix for this bug:
+
+	<rdar://problem/3226083>: REGRESSION (Panther): white box 
+	overlaying select lists at nvidia.com drivers page
+
+        * kwq/KWQListBox.mm:
+        (QListBox::QListBox): Re-add releaseGState fix that Darin
+	added, but then removed. It turns out that we do need 
+	this workaround in place to get proper drawing.
+
+	Fix for this bug:
+
+	<rdar://problem/3310943>: REGRESSION (Panther): textareas 
+	in forms sometimes draw blank (bugreporter)
+
+        * kwq/KWQTextArea.mm:
+        (-[KWQTextArea initWithFrame:]): Same fix as above.
+
 2003-09-05  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by Darin.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index a1e30c2..a133e0b 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,25 @@
+2003-09-05  Ken Kocienda  <kocienda at apple.com>
+
+        Reviewed by Darin
+
+	Fix for this bug:
+
+	<rdar://problem/3226083>: REGRESSION (Panther): white box 
+	overlaying select lists at nvidia.com drivers page
+
+        * kwq/KWQListBox.mm:
+        (QListBox::QListBox): Re-add releaseGState fix that Darin
+	added, but then removed. It turns out that we do need 
+	this workaround in place to get proper drawing.
+
+	Fix for this bug:
+
+	<rdar://problem/3310943>: REGRESSION (Panther): textareas 
+	in forms sometimes draw blank (bugreporter)
+
+        * kwq/KWQTextArea.mm:
+        (-[KWQTextArea initWithFrame:]): Same fix as above.
+
 2003-09-05  Maciej Stachowiak  <mjs at apple.com>
 
         Reviewed by Darin.
diff --git a/WebCore/kwq/KWQListBox.mm b/WebCore/kwq/KWQListBox.mm
index a50c1ea..2eb38f4 100644
--- a/WebCore/kwq/KWQListBox.mm
+++ b/WebCore/kwq/KWQListBox.mm
@@ -63,6 +63,17 @@ QListBox::QListBox(QWidget *parent)
     [scrollView setBorderType:NSBezelBorder];
     [scrollView setHasVerticalScroller:YES];
     [[scrollView verticalScroller] setControlSize:NSSmallControlSize];
+
+    // In WebHTMLView, we set a clip. This is not typical to do in an
+    // NSView, and while correct for any one invocation of drawRect:,
+    // it causes some bad problems if that clip is cached between calls.
+    // The cached graphics state, which clip views keep around, does
+    // cache the clip in this undesirable way. Consequently, we want to 
+    // release the GState for all clip views for all views contained in 
+    // a WebHTMLView. Here we do it for list boxes used in forms.
+    // See these bugs for more information:
+    // <rdar://problem/3226083>: REGRESSION (Panther): white box overlaying select lists at nvidia.com drivers page
+    [[scrollView contentView] releaseGState];
     
     KWQTableView *tableView = [[KWQTableView alloc] initWithListBox:this items:_items];
 
@@ -70,7 +81,6 @@ QListBox::QListBox(QWidget *parent)
     [scrollView setVerticalLineScroll:[tableView rowHeight]];
     
     [tableView release];
-
     setView(scrollView);
     
     [scrollView release];
diff --git a/WebCore/kwq/KWQTextArea.mm b/WebCore/kwq/KWQTextArea.mm
index 13a2a5c..dec7821 100644
--- a/WebCore/kwq/KWQTextArea.mm
+++ b/WebCore/kwq/KWQTextArea.mm
@@ -103,6 +103,17 @@ const float LargeNumberForText = 1.0e7;
     
     [self _createTextView];
     
+    // In WebHTMLView, we set a clip. This is not typical to do in an
+    // NSView, and while correct for any one invocation of drawRect:,
+    // it causes some bad problems if that clip is cached between calls.
+    // The cached graphics state, which clip views keep around, does
+    // cache the clip in this undesirable way. Consequently, we want to 
+    // release the GState for all clip views for all views contained in 
+    // a WebHTMLView. Here we do it for textareas used in forms.
+    // See these bugs for more information:
+    // <rdar://problem/3310943>: REGRESSION (Panther): textareas in forms sometimes draw blank (bugreporter)
+    [[self contentView] releaseGState];
+    
     return self;
 }
 
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 82aab86..441edff 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,22 @@
+2003-09-05  Ken Kocienda  <kocienda at apple.com>
+
+        Reviewed by Darin
+
+	Incorporate releaseGState fix that Darin developed for 
+	textareas and list boxes in WebCore. It turns out that 
+	we this workaround in WebClipView as well to get proper 
+	drawing of subframes.
+
+	In addition, removed some tests that which performed 
+	runtime checks for code in AppKit. AppKit will have
+	the checked-for code in all versions that will be used
+	with the version of WebKit.
+
+        * WebView.subproj/WebClipView.m:
+        (-[WebClipView initWithFrame:])
+        (-[WebClipView resetAdditionalClip])
+        (-[WebClipView setAdditionalClip:])
+
 2003-09-04  John Sullivan  <sullivan at apple.com>
 
 	- fixed 3409011 -- the graphics views palette does not open
diff --git a/WebKit/WebView.subproj/WebClipView.m b/WebKit/WebView.subproj/WebClipView.m
index f04163a..170445b 100644
--- a/WebKit/WebView.subproj/WebClipView.m
+++ b/WebKit/WebView.subproj/WebClipView.m
@@ -18,26 +18,30 @@
 
 // FIXME: Change terminology from "additional clip" to "focus ring clip".
 
- at interface NSView (WebClipViewAdditions)
-- (void)_web_renewGStateDeep;
- at end
-
 @implementation WebClipView
 
-static BOOL NSViewHasFocusRingVisibleRect;
-
-+ (void)initialize
+- (id)initWithFrame:(NSRect)frame
 {
-    NSViewHasFocusRingVisibleRect = [NSView instancesRespondToSelector:@selector(_focusRingVisibleRect)];
+    [super initWithFrame:frame];
+    
+    // In WebHTMLView, we set a clip. This is not typical to do in an
+    // NSView, and while correct for any one invocation of drawRect:,
+    // it causes some bad problems if that clip is cached between calls.
+    // The cached graphics state, which clip views keep around, does
+    // cache the clip in this undesirable way. Consequently, we want to 
+    // release the GState for all clip views for all views contained in 
+    // a WebHTMLView. Here we do it for subframes, which use WebClipView.
+    // See these bugs for more information:
+    // <rdar://problem/3409315>: REGRESSSION (7B58-7B60)?: Safari draws blank frames on macosx.apple.com perf page
+    [self releaseGState];
+    
+    return self;
 }
 
 - (void)resetAdditionalClip
 {
     ASSERT(_haveAdditionalClip);
     _haveAdditionalClip = NO;
-    if (!NSViewHasFocusRingVisibleRect) {
-        [self _web_renewGStateDeep];
-    }
 }
 
 - (void)setAdditionalClip:(NSRect)additionalClip
@@ -45,9 +49,6 @@ static BOOL NSViewHasFocusRingVisibleRect;
     ASSERT(!_haveAdditionalClip);
     _haveAdditionalClip = YES;
     _additionalClip = additionalClip;
-    if (!NSViewHasFocusRingVisibleRect) {
-        [self _web_renewGStateDeep];
-    }
 }
 
 - (BOOL)hasAdditionalClip
@@ -61,15 +62,6 @@ static BOOL NSViewHasFocusRingVisibleRect;
     return _additionalClip;
 }
 
-- (NSRect)visibleRect
-{
-    NSRect rect = [super visibleRect];
-    if (_haveAdditionalClip && !NSViewHasFocusRingVisibleRect) {
-        rect = NSIntersectionRect(rect, _additionalClip);
-    }
-    return rect;
-}
-
 - (NSRect)_focusRingVisibleRect
 {
     NSRect rect = [self visibleRect];
@@ -80,13 +72,3 @@ static BOOL NSViewHasFocusRingVisibleRect;
 }
 
 @end
-
- at implementation NSView (WebClipViewAdditions)
-
-- (void)_web_renewGStateDeep
-{
-    [[self subviews] makeObjectsPerformSelector:@selector(_web_renewGStateDeep)];
-    [self renewGState];
-}
- 
- at end

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list