[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 05:52:18 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 05b3c6a9282965a37fc74769b4d1ad177d62dba4
Author: kocienda <kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Nov 13 23:50:08 2001 +0000
Worked on rendering "background" images:
- Images set as the page bg in body tgas now works
- Images set as table backgrounds now works
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@449 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/khtml/html/html_tableimpl.cpp b/WebCore/khtml/html/html_tableimpl.cpp
index abf3440..1873ef2 100644
--- a/WebCore/khtml/html/html_tableimpl.cpp
+++ b/WebCore/khtml/html/html_tableimpl.cpp
@@ -313,9 +313,18 @@ void HTMLTableElementImpl::parseAttribute(AttrImpl *attr)
{
if (!attr->value().isEmpty()) {
HTMLDocumentImpl *doc = static_cast<HTMLDocumentImpl *>(ownerDocument());
+
+#ifdef _KWQ_
+ // our c++ implementation likes this better
+ DOMString d(khtml::parseURL(attr->value()));
+ QString url = d.string();
+#else
QString url = khtml::parseURL( attr->value() ).string();
+#endif
+
if ( doc->view() )
url = doc->view()->part()->completeURL( url ).url();
+
addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, "url('"+url+"')" );
}
else
@@ -428,9 +437,17 @@ void HTMLTablePartElementImpl::parseAttribute(AttrImpl *attr)
{
if (attr->val()) {
HTMLDocumentImpl *doc = static_cast<HTMLDocumentImpl *>(ownerDocument());
+
+#ifdef _KWQ_
+ // our c++ implementation likes this better
+ DOMString d(khtml::parseURL(attr->value()));
+ QString url = d.string();
+#else
QString url = khtml::parseURL( attr->value() ).string();
+#endif
if ( doc->view() )
url = doc->view()->part()->completeURL( url ).url();
+
addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, "url('"+url+"')" );
}
else
diff --git a/WebCore/khtml/rendering/render_box.cpp b/WebCore/khtml/rendering/render_box.cpp
index 373b807..1d6605f 100644
--- a/WebCore/khtml/rendering/render_box.cpp
+++ b/WebCore/khtml/rendering/render_box.cpp
@@ -207,6 +207,7 @@ void RenderBox::printBackground(QPainter *p, const QColor &c, CachedImage *bg, i
if(c.isValid())
p->fillRect(_tx, clipy, w, cliph, c);
// no progressive loading of the background image
+
if(bg && bg->pixmap_size() == bg->valid_rect().size() && !bg->isTransparent() && !bg->isErrorImage()) {
//kdDebug( 6040 ) << "printing bgimage at " << _tx << "/" << _ty << endl;
// ### might need to add some correct offsets
@@ -295,8 +296,15 @@ void RenderBox::printBackground(QPainter *p, const QColor &c, CachedImage *bg, i
// kdDebug() << "cx="<<cx << " cy="<<cy<< " cw="<<cw << " ch="<<ch << " sx="<<sx << " sy="<<sy << endl;
- if (cw>0 && ch>0)
+ if (cw>0 && ch>0) {
+#ifdef _KWQ_
+ // This is a change in behavior. The difference is that we
+ // do not do a fill of the passed in color before tiling.
+ p->drawTiledPixmap(cx, cy, cw, ch, bg->pixmap(), sx, sy);
+#else
p->drawTiledPixmap(cx, cy, cw, ch, bg->tiled_pixmap(c), sx, sy);
+#endif
+ }
}
}
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 126f88f..bba15c6 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -104,6 +104,7 @@ public:
KHTMLSettings *m_settings;
KURL m_workingURL;
+ KURL m_baseURL;
KHTMLPart *m_part;
KHTMLPartNotificationReceiver *m_recv;
@@ -383,6 +384,22 @@ void KHTMLPart::begin( const KURL &url, int xOffset, int yOffset)
d->m_doc = new HTMLDocumentImpl(d->m_view);
d->m_doc->ref();
+
+ d->m_baseURL = KURL();
+ d->m_workingURL = url;
+
+ if (!d->m_workingURL.isEmpty())
+ {
+ KURL::List lst = KURL::split( d->m_workingURL );
+ KURL baseurl;
+ if ( !lst.isEmpty() )
+ baseurl = *lst.begin();
+ // Use this for relative links.
+ // We prefer m_baseURL over m_url because m_url changes when we are
+ // about to load a new page.
+ setBaseURL(baseurl);
+ }
+
//FIXME: do we need this?
d->m_doc->attach( d->m_view );
d->m_doc->setURL( url.url() );
@@ -487,18 +504,21 @@ void KHTMLPart::end()
}
-void KHTMLPart::setBaseURL( const KURL &url )
+void KHTMLPart::setBaseURL(const KURL &url)
{
- _logNeverImplemented();
+ d->m_baseURL = url;
+ if (d->m_baseURL.protocol().startsWith( "http" ) && !d->m_baseURL.host().isEmpty() && d->m_baseURL.path().isEmpty()) {
+ d->m_baseURL.setPath( "/" );
+ }
}
KURL KHTMLPart::baseURL() const
{
- if (d->m_workingURL.isEmpty()) {
- return KURL();
+ if (d->m_baseURL.isEmpty()) {
+ return d->m_workingURL;
}
- return d->m_workingURL;
+ return d->m_baseURL;
}
@@ -718,7 +738,12 @@ KJSProxy *KHTMLPart::jScript()
KURL KHTMLPart::completeURL(const QString &url, const QString &target = QString::null)
{
- return KURL(d->m_workingURL);
+ if (d->m_baseURL.isEmpty()) {
+ return KURL(d->m_workingURL);
+ }
+ else {
+ return KURL(d->m_baseURL, url);
+ }
}
diff --git a/WebCore/kwq/KWQKHTMLPartImpl.mm b/WebCore/kwq/KWQKHTMLPartImpl.mm
index 126f88f..bba15c6 100644
--- a/WebCore/kwq/KWQKHTMLPartImpl.mm
+++ b/WebCore/kwq/KWQKHTMLPartImpl.mm
@@ -104,6 +104,7 @@ public:
KHTMLSettings *m_settings;
KURL m_workingURL;
+ KURL m_baseURL;
KHTMLPart *m_part;
KHTMLPartNotificationReceiver *m_recv;
@@ -383,6 +384,22 @@ void KHTMLPart::begin( const KURL &url, int xOffset, int yOffset)
d->m_doc = new HTMLDocumentImpl(d->m_view);
d->m_doc->ref();
+
+ d->m_baseURL = KURL();
+ d->m_workingURL = url;
+
+ if (!d->m_workingURL.isEmpty())
+ {
+ KURL::List lst = KURL::split( d->m_workingURL );
+ KURL baseurl;
+ if ( !lst.isEmpty() )
+ baseurl = *lst.begin();
+ // Use this for relative links.
+ // We prefer m_baseURL over m_url because m_url changes when we are
+ // about to load a new page.
+ setBaseURL(baseurl);
+ }
+
//FIXME: do we need this?
d->m_doc->attach( d->m_view );
d->m_doc->setURL( url.url() );
@@ -487,18 +504,21 @@ void KHTMLPart::end()
}
-void KHTMLPart::setBaseURL( const KURL &url )
+void KHTMLPart::setBaseURL(const KURL &url)
{
- _logNeverImplemented();
+ d->m_baseURL = url;
+ if (d->m_baseURL.protocol().startsWith( "http" ) && !d->m_baseURL.host().isEmpty() && d->m_baseURL.path().isEmpty()) {
+ d->m_baseURL.setPath( "/" );
+ }
}
KURL KHTMLPart::baseURL() const
{
- if (d->m_workingURL.isEmpty()) {
- return KURL();
+ if (d->m_baseURL.isEmpty()) {
+ return d->m_workingURL;
}
- return d->m_workingURL;
+ return d->m_baseURL;
}
@@ -718,7 +738,12 @@ KJSProxy *KHTMLPart::jScript()
KURL KHTMLPart::completeURL(const QString &url, const QString &target = QString::null)
{
- return KURL(d->m_workingURL);
+ if (d->m_baseURL.isEmpty()) {
+ return KURL(d->m_workingURL);
+ }
+ else {
+ return KURL(d->m_baseURL, url);
+ }
}
diff --git a/WebCore/src/kdelibs/khtml/html/html_tableimpl.cpp b/WebCore/src/kdelibs/khtml/html/html_tableimpl.cpp
index abf3440..1873ef2 100644
--- a/WebCore/src/kdelibs/khtml/html/html_tableimpl.cpp
+++ b/WebCore/src/kdelibs/khtml/html/html_tableimpl.cpp
@@ -313,9 +313,18 @@ void HTMLTableElementImpl::parseAttribute(AttrImpl *attr)
{
if (!attr->value().isEmpty()) {
HTMLDocumentImpl *doc = static_cast<HTMLDocumentImpl *>(ownerDocument());
+
+#ifdef _KWQ_
+ // our c++ implementation likes this better
+ DOMString d(khtml::parseURL(attr->value()));
+ QString url = d.string();
+#else
QString url = khtml::parseURL( attr->value() ).string();
+#endif
+
if ( doc->view() )
url = doc->view()->part()->completeURL( url ).url();
+
addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, "url('"+url+"')" );
}
else
@@ -428,9 +437,17 @@ void HTMLTablePartElementImpl::parseAttribute(AttrImpl *attr)
{
if (attr->val()) {
HTMLDocumentImpl *doc = static_cast<HTMLDocumentImpl *>(ownerDocument());
+
+#ifdef _KWQ_
+ // our c++ implementation likes this better
+ DOMString d(khtml::parseURL(attr->value()));
+ QString url = d.string();
+#else
QString url = khtml::parseURL( attr->value() ).string();
+#endif
if ( doc->view() )
url = doc->view()->part()->completeURL( url ).url();
+
addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, "url('"+url+"')" );
}
else
diff --git a/WebCore/src/kdelibs/khtml/rendering/render_box.cpp b/WebCore/src/kdelibs/khtml/rendering/render_box.cpp
index 373b807..1d6605f 100644
--- a/WebCore/src/kdelibs/khtml/rendering/render_box.cpp
+++ b/WebCore/src/kdelibs/khtml/rendering/render_box.cpp
@@ -207,6 +207,7 @@ void RenderBox::printBackground(QPainter *p, const QColor &c, CachedImage *bg, i
if(c.isValid())
p->fillRect(_tx, clipy, w, cliph, c);
// no progressive loading of the background image
+
if(bg && bg->pixmap_size() == bg->valid_rect().size() && !bg->isTransparent() && !bg->isErrorImage()) {
//kdDebug( 6040 ) << "printing bgimage at " << _tx << "/" << _ty << endl;
// ### might need to add some correct offsets
@@ -295,8 +296,15 @@ void RenderBox::printBackground(QPainter *p, const QColor &c, CachedImage *bg, i
// kdDebug() << "cx="<<cx << " cy="<<cy<< " cw="<<cw << " ch="<<ch << " sx="<<sx << " sy="<<sy << endl;
- if (cw>0 && ch>0)
+ if (cw>0 && ch>0) {
+#ifdef _KWQ_
+ // This is a change in behavior. The difference is that we
+ // do not do a fill of the passed in color before tiling.
+ p->drawTiledPixmap(cx, cy, cw, ch, bg->pixmap(), sx, sy);
+#else
p->drawTiledPixmap(cx, cy, cw, ch, bg->tiled_pixmap(c), sx, sy);
+#endif
+ }
}
}
diff --git a/WebCore/src/kwq/KWQKHTMLPart.mm b/WebCore/src/kwq/KWQKHTMLPart.mm
index 126f88f..bba15c6 100644
--- a/WebCore/src/kwq/KWQKHTMLPart.mm
+++ b/WebCore/src/kwq/KWQKHTMLPart.mm
@@ -104,6 +104,7 @@ public:
KHTMLSettings *m_settings;
KURL m_workingURL;
+ KURL m_baseURL;
KHTMLPart *m_part;
KHTMLPartNotificationReceiver *m_recv;
@@ -383,6 +384,22 @@ void KHTMLPart::begin( const KURL &url, int xOffset, int yOffset)
d->m_doc = new HTMLDocumentImpl(d->m_view);
d->m_doc->ref();
+
+ d->m_baseURL = KURL();
+ d->m_workingURL = url;
+
+ if (!d->m_workingURL.isEmpty())
+ {
+ KURL::List lst = KURL::split( d->m_workingURL );
+ KURL baseurl;
+ if ( !lst.isEmpty() )
+ baseurl = *lst.begin();
+ // Use this for relative links.
+ // We prefer m_baseURL over m_url because m_url changes when we are
+ // about to load a new page.
+ setBaseURL(baseurl);
+ }
+
//FIXME: do we need this?
d->m_doc->attach( d->m_view );
d->m_doc->setURL( url.url() );
@@ -487,18 +504,21 @@ void KHTMLPart::end()
}
-void KHTMLPart::setBaseURL( const KURL &url )
+void KHTMLPart::setBaseURL(const KURL &url)
{
- _logNeverImplemented();
+ d->m_baseURL = url;
+ if (d->m_baseURL.protocol().startsWith( "http" ) && !d->m_baseURL.host().isEmpty() && d->m_baseURL.path().isEmpty()) {
+ d->m_baseURL.setPath( "/" );
+ }
}
KURL KHTMLPart::baseURL() const
{
- if (d->m_workingURL.isEmpty()) {
- return KURL();
+ if (d->m_baseURL.isEmpty()) {
+ return d->m_workingURL;
}
- return d->m_workingURL;
+ return d->m_baseURL;
}
@@ -718,7 +738,12 @@ KJSProxy *KHTMLPart::jScript()
KURL KHTMLPart::completeURL(const QString &url, const QString &target = QString::null)
{
- return KURL(d->m_workingURL);
+ if (d->m_baseURL.isEmpty()) {
+ return KURL(d->m_workingURL);
+ }
+ else {
+ return KURL(d->m_baseURL, url);
+ }
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list