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


The following commit has been merged in the debian/unstable branch:
commit 52a7b3648e94732a83ae60967f13e06e53c8f6f6
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Sep 23 17:21:58 2002 +0000

    	More refinement of the AppKit hackery.
    
            * khtml/rendering/render_replaced.cpp:
            (RenderWidget::printObject): Pass in the painter and rect.
    
            * kwq/qt/qwidget.h: Take a painter and rect parameter.
            * kwq/KWQWidget.mm: (QWidget::paint): Use painter; not working yet to use rect.
    
            * kwq/KWQFileButton.h: Change paint to take painter and rect.
            * kwq/KWQFileButton.mm: (KWQFileButton::paint): Use painter.
    
            * kwq/qt/qpainter.h: Added paintingDisabled() function.
            * kwq/KWQPainter.mm: (QPainter::paintingDisabled): Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2121 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 6a12e28..4127c3a 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,19 @@
+2002-09-23  Darin Adler  <darin at apple.com>
+
+	More refinement of the AppKit hackery.
+
+        * khtml/rendering/render_replaced.cpp:
+        (RenderWidget::printObject): Pass in the painter and rect.
+
+        * kwq/qt/qwidget.h: Take a painter and rect parameter.
+        * kwq/KWQWidget.mm: (QWidget::paint): Use painter; not working yet to use rect.
+
+        * kwq/KWQFileButton.h: Change paint to take painter and rect.
+        * kwq/KWQFileButton.mm: (KWQFileButton::paint): Use painter.
+
+        * kwq/qt/qpainter.h: Added paintingDisabled() function.
+        * kwq/KWQPainter.mm: (QPainter::paintingDisabled): Added.
+
 2002-09-22  Darin Adler  <darin at apple.com>
 
 	Change code that moves NSViews out of the way to run inside drawRect
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 6a12e28..4127c3a 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,19 @@
+2002-09-23  Darin Adler  <darin at apple.com>
+
+	More refinement of the AppKit hackery.
+
+        * khtml/rendering/render_replaced.cpp:
+        (RenderWidget::printObject): Pass in the painter and rect.
+
+        * kwq/qt/qwidget.h: Take a painter and rect parameter.
+        * kwq/KWQWidget.mm: (QWidget::paint): Use painter; not working yet to use rect.
+
+        * kwq/KWQFileButton.h: Change paint to take painter and rect.
+        * kwq/KWQFileButton.mm: (KWQFileButton::paint): Use painter.
+
+        * kwq/qt/qpainter.h: Added paintingDisabled() function.
+        * kwq/KWQPainter.mm: (QPainter::paintingDisabled): Added.
+
 2002-09-22  Darin Adler  <darin at apple.com>
 
 	Change code that moves NSViews out of the way to run inside drawRect
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 6a12e28..4127c3a 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,19 @@
+2002-09-23  Darin Adler  <darin at apple.com>
+
+	More refinement of the AppKit hackery.
+
+        * khtml/rendering/render_replaced.cpp:
+        (RenderWidget::printObject): Pass in the painter and rect.
+
+        * kwq/qt/qwidget.h: Take a painter and rect parameter.
+        * kwq/KWQWidget.mm: (QWidget::paint): Use painter; not working yet to use rect.
+
+        * kwq/KWQFileButton.h: Change paint to take painter and rect.
+        * kwq/KWQFileButton.mm: (KWQFileButton::paint): Use painter.
+
+        * kwq/qt/qpainter.h: Added paintingDisabled() function.
+        * kwq/KWQPainter.mm: (QPainter::paintingDisabled): Added.
+
 2002-09-22  Darin Adler  <darin at apple.com>
 
 	Change code that moves NSViews out of the way to run inside drawRect
diff --git a/WebCore/khtml/rendering/render_replaced.cpp b/WebCore/khtml/rendering/render_replaced.cpp
index 9310c88..e801754 100644
--- a/WebCore/khtml/rendering/render_replaced.cpp
+++ b/WebCore/khtml/rendering/render_replaced.cpp
@@ -219,7 +219,11 @@ void RenderWidget::setStyle(RenderStyle *_style)
     setSpecialObjects(false);
 }
 
+#if APPLE_CHANGES
+void RenderWidget::printObject(QPainter *p, int x, int y, int width, int height, int _tx, int _ty)
+#else
 void RenderWidget::printObject(QPainter* /*p*/, int, int, int, int, int _tx, int _ty)
+#endif
 {
     if (!m_widget || !m_view)
 	return;
@@ -268,10 +272,10 @@ void RenderWidget::printObject(QPainter* /*p*/, int, int, int, int, int _tx, int
     m_view->addChild(m_widget, xPos, yPos );
     m_widget->show();
     
-#ifdef APPLE_CHANGES
+#if APPLE_CHANGES
     // Tell the widget to paint now.  This is the only time the widget is allowed
     // to paint itself.  That way it will composite properly with z-indexed layers.
-    m_widget->paint();
+    m_widget->paint(p, QRect(x, y, width, height));
 #endif
 }
 
diff --git a/WebCore/kwq/KWQFileButton.h b/WebCore/kwq/KWQFileButton.h
index 2273d07..1a9a867 100644
--- a/WebCore/kwq/KWQFileButton.h
+++ b/WebCore/kwq/KWQFileButton.h
@@ -51,7 +51,7 @@ public:
 
 private:
     virtual void clicked();
-    virtual void paint();
+    virtual void paint(QPainter *, const QRect &);
     
     KWQSignal _textChanged;
     QString _filename;
diff --git a/WebCore/kwq/KWQFileButton.mm b/WebCore/kwq/KWQFileButton.mm
index d3fbcde..7c028e5 100644
--- a/WebCore/kwq/KWQFileButton.mm
+++ b/WebCore/kwq/KWQFileButton.mm
@@ -124,9 +124,13 @@ int KWQFileButton::baselinePosition() const
     return QPushButton::baselinePosition();
 }
 
-void KWQFileButton::paint()
+void KWQFileButton::paint(QPainter *p, const QRect &r)
 {
-    QPushButton::paint();
+    if (p->paintingDisabled()) {
+        return;
+    }
+    
+    QPushButton::paint(p, r);
     
     QString text = _filename;
     if (text.isEmpty()) {
@@ -149,15 +153,14 @@ void KWQFileButton::paint()
 
     // FIXME: Use same font as button, don't hardcode Lucida Grande.
     // FIXME: Ellipsize the text to fit in the box.
-    QPainter painter;
     QFont font;
     font.setFamily(FONT_FAMILY);
     font.setPixelSize([NSFont smallSystemFontSize]);
-    painter.save(); // wouldn't be needed in real Qt, but we need it
-    painter.addClip(frameGeometry());
-    painter.setFont(font);
-    painter.drawText(left, y() + baselinePosition(), 0, 0, 0, text);
-    painter.restore(); // wouldn't be needed in real Qt, but we need it
+    p->save();
+    p->addClip(frameGeometry());
+    p->setFont(font);
+    p->drawText(left, y() + baselinePosition(), 0, 0, 0, text);
+    p->restore();
 }
 
 @implementation KWQFileButtonAdapter
diff --git a/WebCore/kwq/KWQPainter.h b/WebCore/kwq/KWQPainter.h
index 84096d4..4b407d0 100644
--- a/WebCore/kwq/KWQPainter.h
+++ b/WebCore/kwq/KWQPainter.h
@@ -95,7 +95,8 @@ public:
     void drawUnderlineForText(int x, int y, const QChar *, int length);
     static QColor selectedTextBackgroundColor();
     
-    void setPaintingDisabled(bool f);
+    bool paintingDisabled() const;
+    void setPaintingDisabled(bool);
     
 private:
     // no copying or assignment
diff --git a/WebCore/kwq/KWQPainter.mm b/WebCore/kwq/KWQPainter.mm
index b39608d..d4cdd78 100644
--- a/WebCore/kwq/KWQPainter.mm
+++ b/WebCore/kwq/KWQPainter.mm
@@ -432,3 +432,8 @@ void QPainter::setPaintingDisabled(bool f)
 {
     data->state.paintingDisabled = f;
 }
+
+bool QPainter::paintingDisabled() const
+{
+    return data->state.paintingDisabled;
+}
diff --git a/WebCore/kwq/KWQWidget.h b/WebCore/kwq/KWQWidget.h
index 927b49e..71e62c5 100644
--- a/WebCore/kwq/KWQWidget.h
+++ b/WebCore/kwq/KWQWidget.h
@@ -87,7 +87,7 @@ public:
     void move(int, int);
     void move(const QPoint &);
 
-    virtual void paint();
+    virtual void paint(QPainter *, const QRect &);
     
     virtual QRect frameGeometry() const;
     virtual void setFrameGeometry(const QRect &);
diff --git a/WebCore/kwq/KWQWidget.mm b/WebCore/kwq/KWQWidget.mm
index f4c157c..4dc84b5 100644
--- a/WebCore/kwq/KWQWidget.mm
+++ b/WebCore/kwq/KWQWidget.mm
@@ -157,8 +157,7 @@ QRect QWidget::frameGeometry() const
     if ([view conformsToProtocol:@protocol(WebCoreFrameView)]) {
         view = [view superview];
     }
-    NSRect vFrame = [view frame];
-    return QRect((int)vFrame.origin.x, (int)vFrame.origin.y, (int)vFrame.size.width, (int)vFrame.size.height);
+    return QRect([view frame]);
 }
 
 int QWidget::baselinePosition() const
@@ -379,8 +378,9 @@ void QWidget::disableFlushDrawing()
 
 void QWidget::enableFlushDrawing()
 {
-    [[getView() window] enableFlushWindow];
-    [[getView() window] flushWindowIfNeeded];
+    NSWindow *window = [getView() window];
+    [window enableFlushWindow];
+    [window flushWindowIfNeeded];
 }
 
 void QWidget::setDrawingAlpha(float alpha)
@@ -388,8 +388,15 @@ void QWidget::setDrawingAlpha(float alpha)
     CGContextSetAlpha((CGContextRef)[[NSGraphicsContext currentContext] graphicsPort], alpha);
 }
 
-void QWidget::paint()
+void QWidget::paint(QPainter *p, const QRect &r)
 {
-    // FIXME: Should pass in a rectangle and display less.
-    [getView() displayRectIgnoringOpacity:[getView() bounds]];
+    if (p->paintingDisabled()) {
+        return;
+    }
+    NSView *view = getView();
+#if 0
+    NSRect rect = NSIntersectionRect([view convertRect:r fromView:[view superview]], [view bounds]);
+    NSLog(@"%@, rect is %@, bounds rect is %@", view, NSStringFromRect(rect), NSStringFromRect([view bounds]));
+#endif
+    [view displayRectIgnoringOpacity:[view bounds]];
 }
diff --git a/WebCore/kwq/qt/qpainter.h b/WebCore/kwq/qt/qpainter.h
index 84096d4..4b407d0 100644
--- a/WebCore/kwq/qt/qpainter.h
+++ b/WebCore/kwq/qt/qpainter.h
@@ -95,7 +95,8 @@ public:
     void drawUnderlineForText(int x, int y, const QChar *, int length);
     static QColor selectedTextBackgroundColor();
     
-    void setPaintingDisabled(bool f);
+    bool paintingDisabled() const;
+    void setPaintingDisabled(bool);
     
 private:
     // no copying or assignment
diff --git a/WebCore/kwq/qt/qwidget.h b/WebCore/kwq/qt/qwidget.h
index 927b49e..71e62c5 100644
--- a/WebCore/kwq/qt/qwidget.h
+++ b/WebCore/kwq/qt/qwidget.h
@@ -87,7 +87,7 @@ public:
     void move(int, int);
     void move(const QPoint &);
 
-    virtual void paint();
+    virtual void paint(QPainter *, const QRect &);
     
     virtual QRect frameGeometry() const;
     virtual void setFrameGeometry(const QRect &);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list