packages: kde4-kdelibs/kde4-kdelibs-branch.diff, kde4-kdelibs/kde4-kdelibs....
arekm
arekm at pld-linux.org
Thu May 28 21:32:40 CEST 2009
Author: arekm Date: Thu May 28 19:32:40 2009 GMT
Module: packages Tag: HEAD
---- Log message:
- rel 3; branch diff is back
---- Files affected:
packages/kde4-kdelibs:
kde4-kdelibs-branch.diff (1.12 -> 1.13) , kde4-kdelibs.spec (1.146 -> 1.147)
---- Diffs:
================================================================
Index: packages/kde4-kdelibs/kde4-kdelibs-branch.diff
diff -u packages/kde4-kdelibs/kde4-kdelibs-branch.diff:1.12 packages/kde4-kdelibs/kde4-kdelibs-branch.diff:1.13
--- packages/kde4-kdelibs/kde4-kdelibs-branch.diff:1.12 Sun Apr 19 18:52:37 2009
+++ packages/kde4-kdelibs/kde4-kdelibs-branch.diff Thu May 28 21:32:32 2009
@@ -1,7291 +1,4955 @@
Index: khtml/khtmlview.cpp
===================================================================
---- khtml/khtmlview.cpp (.../tags/KDE/4.2.2/kdelibs) (wersja 956244)
-+++ khtml/khtmlview.cpp (.../branches/KDE/4.2/kdelibs) (wersja 956244)
-@@ -559,7 +559,10 @@
- }
- node = node->parentNode();
+--- khtml/khtmlview.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/khtmlview.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -136,6 +136,9 @@
+ static const int sSmoothScrollTick = 14;
+ static const int sSmoothScrollMinStaticPixels = 320*200;
+
++static const int sMaxMissedDeadlines = 12;
++static const int sWayTooMany = -1;
++
+ class KHTMLViewPrivate {
+ friend class KHTMLView;
+ public:
+@@ -164,6 +167,7 @@
+ postponed_autorepeat = NULL;
+ scrollingFromWheelTimerId = 0;
+ smoothScrollMode = KHTMLView::SSMWhenEfficient;
++
+ reset();
+ vpolicy = Qt::ScrollBarAsNeeded;
+ hpolicy = Qt::ScrollBarAsNeeded;
+@@ -246,6 +250,7 @@
+ smoothScrolling = false;
+ smoothScrollModeIsDefault = true;
+ shouldSmoothScroll = false;
++ smoothScrollMissedDeadlines = 0;
+ hasFrameset = false;
+ #ifdef FIX_QT_BROKEN_QWIDGET_SCROLL
+ oldVScrollUpdatesEnabled = true;
+@@ -450,6 +455,7 @@
+ bool possibleTripleClick :1;
+ bool dirtyLayout :1;
+ bool m_dialogsAllowed :1;
++ short smoothScrollMissedDeadlines;
+ int layoutCounter;
+ int layoutAttemptCounter;
+ int scheduledLayoutCounter;
+@@ -3754,8 +3760,6 @@
+ if (defaultHandled || me->defaultPrevented())
+ swallowEvent = true;
}
-- return true;
-+ // Qt makes tooltip events happen nearly immediately when a preceding one was processed in the past few seconds.
-+ // We don't want that feature to apply to web tootlips however, as it clashes with dhtml menus.
-+ // So we'll just pretend we did not process that event.
-+ return false;
+- me->deref();
+-
+ if (eventId == EventImpl::MOUSEDOWN_EVENT && !me->defaultPrevented()) {
+ // Focus should be shifted on mouse down, not on a click. -dwh
+ // Blur current focus node when a link/button is clicked; this
+@@ -3769,6 +3773,7 @@
+ else if (!nodeImpl || !nodeImpl->focused())
+ m_part->xmlDocImpl()->setFocusNode(0);
+ }
++ me->deref();
+ }
+
+ return swallowEvent;
+@@ -3925,7 +3930,7 @@
+ }
+
+ if ( d->shouldSmoothScroll && d->smoothScrollMode != SSMDisabled && m_part->xmlDocImpl() &&
+- m_part->xmlDocImpl()->renderer()) {
++ m_part->xmlDocImpl()->renderer() && (d->smoothScrollMode != SSMWhenEfficient || d->smoothScrollMissedDeadlines != sWayTooMany)) {
+
+ bool doSmoothScroll = (!d->staticWidget || d->smoothScrollMode == SSMEnabled);
+
+@@ -4161,6 +4166,17 @@
+
+ d->ddx -= dddx;
+ d->ddy -= dddy;
++ d->smoothScrollMissedDeadlines = 0;
++ } else {
++ if (d->smoothScrollMissedDeadlines != sWayTooMany &&
++ (!m_part->xmlDocImpl() || !m_part->xmlDocImpl()->parsing())) {
++ d->smoothScrollMissedDeadlines++;
++ if (d->smoothScrollMissedDeadlines >= sMaxMissedDeadlines) {
++ // we missed many deadlines in a row!
++ // time to signal we had enough..
++ d->smoothScrollMissedDeadlines = sWayTooMany;
++ }
++ }
+ }
+ d->smoothScrollStopwatch.start();
+ }
+Index: khtml/dom/dom_node.cpp
+===================================================================
+--- khtml/dom/dom_node.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/dom/dom_node.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -390,6 +390,13 @@
+ throw DOMException(exceptioncode);
+ }
+
++unsigned Node::compareDocumentPosition(const Node& other)
++{
++ if (!impl || !other.impl)
++ throw DOMException(DOMException::NOT_FOUND_ERR);
++ return impl->compareDocumentPosition(other.impl);
++}
++
+ unsigned int Node::elementId() const
+ {
+ if (!impl) return 0;
+Index: khtml/dom/dom_node.h
+===================================================================
+--- khtml/dom/dom_node.h (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/dom/dom_node.h (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -837,7 +837,7 @@
+ bool dispatchEvent(const Event &evt);
+
+ /**
+- * Introduced in DOM Level 2
++ * Introduced in DOM Level 3
+ *
+ * This attribute returns the text content of this node and its
+ * descendants. When it is defined to be null, setting it has no
+@@ -854,7 +854,7 @@
+ * textual content.
+ */
+ DOMString textContent() const;
+-
++
+ /**
+ * see textContent()
+ *
+@@ -862,6 +862,40 @@
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+ */
+ void setTextContent(const DOMString& text);
++
++ /**
++ * Introduced in DOM Level 3.
++ *
++ * These constants represent bitflags returned by the compareDocumentPosition
++ * method.
++ *
++ * @since 4.2.4
++ */
++ enum DocumentPosition {
++ DOCUMENT_POSITION_DISCONNECTED = 0x01,
++ DOCUMENT_POSITION_PRECEDING = 0x02,
++ DOCUMENT_POSITION_FOLLOWING = 0x04,
++ DOCUMENT_POSITION_CONTAINS = 0x08,
++ DOCUMENT_POSITION_CONTAINED_BY = 0x10,
++ DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
++ };
++
++ /**
++ * Introduced in DOM Level 3.
++ *
++ * This method compares the current node's position with that of 'other'
++ * and returns it as a combination of DocumentPosition bitfields.
++ * Here DOCUMENT_POSITION_FOLLOWING means that the 'other' is
++ * after the current.
++ *
++ * The notion of order here is a logical one; for example attributes
++ * are viewed as if they were children of an element inserted
++ * right before the real children. The method will also assign
++ * some total order even if the nodes are not connected.
++ *
++ * @since 4.2.4
++ */
++ unsigned compareDocumentPosition(const DOM::Node& other);
+
+ /**
+ * @internal
+Index: khtml/misc/loader.cpp
+===================================================================
+--- khtml/misc/loader.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/misc/loader.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -329,7 +329,7 @@
+ if (strncmp(d, "@charset \"",10) == 0)
+ {
+ // the string until "; is the charset name
+- char *p = strchr(d+10, '"');
++ const char *p = strchr(d+10, '"');
+ if (p == 0) return m_charset;
+ QString charset = QString::fromAscii(d+10, p-(d+10));
+ return charset;
+Index: khtml/misc/paintbuffer.h
+===================================================================
+--- khtml/misc/paintbuffer.h (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/misc/paintbuffer.h (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -124,7 +124,8 @@
}
+
+ void transfer( float opacity ) {
+- bool constantOpacity = m_origPainter->paintEngine() && m_origPainter->paintEngine()->hasFeature(QPaintEngine::ConstantOpacity);
++ // ### when using DestinationIn with an alpha above 0.99, the resulting buffer ends up black in Qt 4.5.1
++ bool constantOpacity = (opacity > 0.99) || m_origPainter->paintEngine() && m_origPainter->paintEngine()->hasFeature(QPaintEngine::ConstantOpacity);
+ if (!constantOpacity) {
+ QColor color;
+ color.setAlphaF(opacity);
+Index: khtml/khtml.desktop
+===================================================================
+--- khtml/khtml.desktop (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/khtml.desktop (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -79,8 +79,8 @@
+ Comment[uz at cyrillic]=Ичига ўрнатиб бўладиган HTML кўрувчи компонент
+ Comment[vi]=Thành phần xem HTML có khả năng nhúng.
+ Comment[wa]=Ravalé compôzant di håynaedje HTML
++Comment[xh]=Inxenye yemboniselo elungisiweyo ye HTML
+ Comment[x-test]=xxEmbeddable HTML viewing componentxx
+-Comment[xh]=Inxenye yemboniselo elungisiweyo ye HTML
+ Comment[zh_CN]=可嵌入的 HTML 查看部件
+ Comment[zh_HK]=可嵌入的 HTML 檢視元件
+ Comment[zh_TW]=可嵌入的 HTML 檢視元件
+Index: khtml/khtmlimage.desktop
+===================================================================
+--- khtml/khtmlimage.desktop (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/khtmlimage.desktop (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -79,8 +79,8 @@
+ Comment[uz at cyrillic]=Ичига ўрнатиб бўладиган расм кўрувчи компонент
+ Comment[vi]=Thành phần xem ảnh có khả năng nhúng.
+ Comment[wa]=Ravalé compôzant håyneu d' imådjes
++Comment[xh]=Ingxenye Yemboniselo Yomfanekiso Olungisiweyo
+ Comment[x-test]=xxEmbeddable Image Viewing Componentxx
+-Comment[xh]=Ingxenye Yemboniselo Yomfanekiso Olungisiweyo
+ Comment[zh_CN]=可嵌入的图像查看部件
+ Comment[zh_HK]=可嵌入的圖檔檢視元件
+ Comment[zh_TW]=可嵌入的影像檢視元件
+@@ -164,8 +164,8 @@
+ Name[uz at cyrillic]=Расм кўрувчи
+ Name[vi]=Bộ xem ảnh có khả năng nhúng
+ Name[wa]=Ravalé håyneu d' imådjes
++Name[xh]=Umboniseli Womfanekiso Olungisiweyo
+ Name[x-test]=xxEmbeddable Image Viewerxx
+-Name[xh]=Umboniseli Womfanekiso Olungisiweyo
+ Name[zh_CN]=可嵌入的图像查看器
+ Name[zh_HK]=可嵌入的圖檔檢視器
+ Name[zh_TW]=可嵌入的影像檢視器
+Index: khtml/svg/SVGElement.cpp
+===================================================================
+--- khtml/svg/SVGElement.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/svg/SVGElement.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -154,7 +154,7 @@
+ else*/
+ if (attr->id() == ATTR_ID) {
+ setHasID();
+- document()->incDOMTreeVersion();
++ document()->incDOMTreeVersion(DocumentImpl::TV_IDNameHref);
+ } else
+ StyledElement::parseAttribute(attr);
+ }
+Index: khtml/html/html_miscimpl.cpp
+===================================================================
+--- khtml/html/html_miscimpl.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/html/html_miscimpl.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -56,7 +56,7 @@
+
+ QHash<QString,QList<NodeImpl*>* > nameCache;
+
+- CollectionCache(): nameCache(){}
++ CollectionCache(): Cache(DocumentImpl::TV_IDNameHref) {}
+
+ virtual void clear(DocumentImpl* doc)
+ {
+Index: khtml/html/html_formimpl.cpp
+===================================================================
+--- khtml/html/html_formimpl.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/html/html_formimpl.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -71,6 +71,7 @@
+
+ using namespace DOM;
+ using namespace khtml;
++using namespace WTF;
+
+ HTMLFormElementImpl::HTMLFormElementImpl(DocumentImpl *doc, bool implicit)
+ : HTMLElementImpl(doc)
+@@ -245,6 +246,19 @@
+ return str;
+ }
+
++Vector<HTMLGenericFormElementImpl*> HTMLFormElementImpl::gatherInTreeOrder(NodeImpl* root,
++ const HashSet<NodeImpl*>& toGather)
++{
++ Vector<HTMLGenericFormElementImpl*> out;
++ out.reserveCapacity(toGather.size());
++
++ for (NodeImpl* cur = root; cur; cur = cur->traverseNextNode(root)) {
++ if (toGather.contains(cur))
++ out.append(static_cast<HTMLGenericFormElementImpl*>(cur));
++ }
++ return out;
++}
++
+ QByteArray HTMLFormElementImpl::formData(bool& ok)
+ {
+ #ifdef FORMS_DEBUG
+@@ -296,9 +310,27 @@
+ m_encCharset[i] = m_encCharset[i].toLatin1() == ' ' ? QChar('-') : m_encCharset[i].toLower();
+
+ QStringList fileUploads, fileNotUploads;
++
++ /**
++ Frameworks such as mootools Sortables expect form element values to be submitted in
++ tree order (and HTML5 specifies this behavior); however formElements need not be
++ ordered thus. Hence we walk through the tree and the formElements as we go ---
++ first in our kids, then if needed in the parent
++ */
++ HashSet<NodeImpl*> formElementsSet;
++ foreach (HTMLGenericFormElementImpl* fe, formElements)
++ formElementsSet.add(fe);
++
++ Vector<HTMLGenericFormElementImpl*> ordered = gatherInTreeOrder(this, formElementsSet);
++
++ if (ordered.size() < (unsigned)formElements.size()) {
++ // Some of our elements not contained within us due to parsing hijinks -- scan
++ // the entire document.
++ ordered = gatherInTreeOrder(document()->documentElement(), formElementsSet);
++ }
+
+- for (QListIterator<HTMLGenericFormElementImpl*> it(formElements); it.hasNext();) {
+- HTMLGenericFormElementImpl* const current = it.next();
++ for (unsigned i = 0; i < ordered.size(); ++i) {
++ HTMLGenericFormElementImpl* const current = ordered[i];
+ khtml::encodingList lst;
+
+ if (!current->disabled() && current->encoding(codec, lst, m_multipart))
+Index: khtml/html/html_elementimpl.cpp
+===================================================================
+--- khtml/html/html_elementimpl.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/html/html_elementimpl.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -161,7 +161,7 @@
+ case ATTR_ID:
+ // unique id
+ setHasID();
+- document()->incDOMTreeVersion();
++ document()->incDOMTreeVersion(DocumentImpl::TV_IDNameHref);
+ break;
+ case ATTR_CLASS:
+ if (attr->val()) {
+@@ -175,9 +175,10 @@
+ } else {
+ setHasClass(false);
+ }
++ document()->incDOMTreeVersion(DocumentImpl::TV_Class);
+ break;
+ case ATTR_NAME:
+- document()->incDOMTreeVersion();
++ document()->incDOMTreeVersion(DocumentImpl::TV_IDNameHref);
+ break;
+ case ATTR_CONTENTEDITABLE:
+ setContentEditable(attr);
+Index: khtml/html/html_miscimpl.h
+===================================================================
+--- khtml/html/html_miscimpl.h (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/html/html_miscimpl.h (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -24,6 +24,7 @@
+ #define HTML_MISCIMPL_H
- case QEvent::DragEnter:
-@@ -1425,16 +1428,27 @@
+ #include "html_elementimpl.h"
++#include "xml/dom_nodelistimpl.h"
+ #include "misc/shared.h"
+
+ namespace DOM {
+Index: khtml/html/html_formimpl.h
+===================================================================
+--- khtml/html/html_formimpl.h (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/html/html_formimpl.h (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -28,6 +28,8 @@
+ #include "html/html_elementimpl.h"
+ #include "html/html_imageimpl.h"
+ #include "dom/html_element.h"
++#include <wtf/HashSet.h>
++#include <wtf/Vector.h>
- khtml::RenderObject* r = target ? target->renderer() : 0;
- bool setCursor = true;
-- if (r && r->isWidget()) {
-+ bool forceDefault = false;
-+ if (r && r->isWidget()) {
- RenderWidget* rw = static_cast<RenderWidget*>(r);
- KHTMLWidget* kw = qobject_cast<KHTMLView*>(rw->widget())? dynamic_cast<KHTMLWidget*>(rw->widget()) : 0;
- if (kw && kw->m_kwp->isRedirected())
- setCursor = false;
-+ else if (QLineEdit* le = qobject_cast<QLineEdit*>(rw->widget())) {
-+ QList<QWidget*> wl = qFindChildren<QWidget *>( le, "KHTMLLineEditButton" );
-+ // force arrow cursor above lineedit clear button
-+ foreach (QWidget*w, wl) {
-+ if (w->underMouse()) {
-+ forceDefault = true;
-+ break;
+ class QTextCodec;
+
+@@ -107,6 +109,10 @@
+ friend class HTMLFormCollectionImpl;
+
+ private:
++ // Collects nodes that are inside the toGather set in tree order
++ WTF::Vector<HTMLGenericFormElementImpl*> gatherInTreeOrder(NodeImpl* root,
++ const WTF::HashSet<NodeImpl*>& toGather);
++
+ void gatherWalletData();
+ QList<HTMLGenericFormElementImpl*> formElements;
+ QList<HTMLImageElementImpl*> imgElements;
+Index: khtml/html/html_inlineimpl.cpp
+===================================================================
+--- khtml/html/html_inlineimpl.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/html/html_inlineimpl.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -176,7 +176,7 @@
+ {
+ bool hadAnchor = m_hasAnchor;
+ m_hasAnchor = attr->val() != 0;
+- document()->incDOMTreeVersion();
++ document()->incDOMTreeVersion(DocumentImpl::TV_IDNameHref);
+ if (hadAnchor != m_hasAnchor)
+ setChanged();
+ if (m_hasAnchor && document()->part() && document()->part()->dnsPrefetch()) {
+Index: khtml/ecma/kjs_dom.cpp
+===================================================================
+--- khtml/ecma/kjs_dom.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/ecma/kjs_dom.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -72,6 +72,12 @@
+ DOCUMENT_TYPE_NODE DOM::Node::DOCUMENT_TYPE_NODE DontDelete|ReadOnly
+ DOCUMENT_FRAGMENT_NODE DOM::Node::DOCUMENT_FRAGMENT_NODE DontDelete|ReadOnly
+ NOTATION_NODE DOM::Node::NOTATION_NODE DontDelete|ReadOnly
++ DOCUMENT_POSITION_DISCONNECTED DOM::Node::DOCUMENT_POSITION_DISCONNECTED DontDelete|ReadOnly
++ DOCUMENT_POSITION_PRECEDING DOM::Node::DOCUMENT_POSITION_PRECEDING DontDelete|ReadOnly
++ DOCUMENT_POSITION_FOLLOWING DOM::Node::DOCUMENT_POSITION_FOLLOWING DontDelete|ReadOnly
++ DOCUMENT_POSITION_CONTAINS DOM::Node::DOCUMENT_POSITION_CONTAINS DontDelete|ReadOnly
++ DOCUMENT_POSITION_CONTAINED_BY DOM::Node::DOCUMENT_POSITION_CONTAINED_BY DontDelete|ReadOnly
++ DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC DOM::Node::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC DontDelete|ReadOnly
+ @end
+ */
+ IMPLEMENT_CONSTANT_TABLE(DOMNodeConstants,"DOMNodeConstants")
+@@ -89,6 +95,8 @@
+ # DOM2
+ normalize DOMNode::Normalize DontDelete|Function 0
+ isSupported DOMNode::IsSupported DontDelete|Function 2
++# DOM3
++ compareDocumentPosition DOMNode::CompareDocumentPosition DontDelete|Function 1
+ # from the EventTarget interface
+ addEventListener DOMNode::AddEventListener DontDelete|Function 3
+ removeEventListener DOMNode::RemoveEventListener DontDelete|Function 3
+@@ -684,6 +692,13 @@
+ SharedPtr<NodeListImpl> childNodes = node.childNodes();
+ return getDOMNode(exec, childNodes->item(static_cast<unsigned long>(args[0]->toNumber(exec))));
+ }
++ case DOMNode::CompareDocumentPosition: {
++ DOM::NodeImpl* other = toNode(args[0]);
++ if (!other)
++ setDOMException(exec, DOMException::TYPE_MISMATCH_ERR);
++ else
++ return jsNumber(node.compareDocumentPosition(other));
++ }
+ }
+
+ return jsUndefined();
+Index: khtml/ecma/kjs_window.cpp
+===================================================================
+--- khtml/ecma/kjs_window.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/ecma/kjs_window.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -1652,6 +1652,10 @@
+ KHTMLView *widget = p->view();
+ KParts::WindowArgs winargs;
+
++ // Split on commas and syntactic whitespace
++ // Testcase: 'height=600, width=950 left = 30,top = 50,statusbar=0'
++ static const QRegExp m(",|\\b\\s+(?!=)");
++
+ // scan feature argument
+ if (!features.isEmpty()) {
+ // specifying window params means false defaults
+@@ -1659,7 +1663,7 @@
+ winargs.setToolBarsVisible(false);
+ winargs.setStatusBarVisible(false);
+ winargs.setScrollBarsVisible(false);
+- const QStringList flist = features.split(',');
++ const QStringList flist = features.trimmed().split(m);
+ QStringList::ConstIterator it = flist.begin();
+ while (it != flist.end()) {
+ QString s = *it++;
+Index: khtml/ecma/kjs_dom.h
+===================================================================
+--- khtml/ecma/kjs_dom.h (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/ecma/kjs_dom.h (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -65,7 +65,7 @@
+ OnResize, OnScroll, OnSelect, OnSubmit, OnUnload,
+ OffsetLeft, OffsetTop, OffsetWidth, OffsetHeight, OffsetParent,
+ ClientLeft, ClientTop, ClientWidth, ClientHeight, ScrollLeft, ScrollTop,
+- ScrollWidth, ScrollHeight, SourceIndex, TextContent };
++ ScrollWidth, ScrollHeight, SourceIndex, TextContent, CompareDocumentPosition };
+
+ //### toNode? virtual
+ DOM::NodeImpl* impl() const { return m_impl.get(); }
+Index: khtml/CMakeLists.txt
+===================================================================
+--- khtml/CMakeLists.txt (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/CMakeLists.txt (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -355,6 +355,7 @@
+ set(khtmlxml_STAT_SRCS
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_docimpl.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_nodeimpl.cpp
++ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_nodelistimpl.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_textimpl.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_elementimpl.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_stringimpl.cpp
+@@ -366,7 +367,6 @@
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom2_viewsimpl.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_restyler.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/ClassNames.cpp
+- ${CMAKE_SOURCE_DIR}/khtml/xml/ClassNodeList.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_position.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_positioniterator.cpp
+ ${CMAKE_SOURCE_DIR}/khtml/xml/dom_selection.cpp
+Index: khtml/rendering/bidi.cpp
+===================================================================
+--- khtml/rendering/bidi.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/rendering/bidi.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -2078,8 +2078,10 @@
+
+ // For wrapping text only, include the hyphen. We need to ensure it will fit
+ // on the line if it shows when we break.
+- if (o->style()->autoWrap())
+- tmpW += t->width(pos, 1, f);
++ if (o->style()->autoWrap()) {
++ const QChar softHyphen(0x00ad);
++ tmpW += f->charWidth(&softHyphen, 1, 0, true);
++ }
+
+ BidiIterator startMid(0, o, pos+1);
+ addMidpoint(startMid);
+Index: khtml/rendering/render_box.h
+===================================================================
+--- khtml/rendering/render_box.h (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/rendering/render_box.h (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -141,7 +141,7 @@
+ int calcHeightUsing(const Length& height);
+ int calcReplacedWidthUsing(WidthType widthType) const;
+ int calcReplacedHeightUsing(HeightType heightType) const;
+- int calcPercentageHeight(const Length& height, bool treatAsReplaced = false) const;
++ int calcPercentageHeight(const Length& height) const;
+ int availableHeightUsing(const Length& h) const;
+ int availableWidthUsing(const Length& w) const;
+ int calcImplicitContentHeight() const;
+Index: khtml/rendering/render_container.cpp
+===================================================================
+--- khtml/rendering/render_container.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/rendering/render_container.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
+@@ -195,6 +195,37 @@
+ if (oldChild->isPosWithStaticDim() && childrenInline())
+ dirtyLinesFromChangedChild(oldChild);
+
++ // We are about to take out node from the rendering tree and therefore
++ // it's possible that we're modifying the line box tree too.
++ // In order to properly recalculate it later we need
++ // to delete all the boxes from the current flow of the removed child. (vtokarev)
++ // In particular that's relevant when we're merging splitted inline flow. (continuations)
++ // We're taking the render objects from one block and insert into another
++ // so we have to force line box tree recalculation
++ if (oldChild->isInline()) {
++ if (oldChild->isText()) {
++ InlineTextBox* box = static_cast<RenderText*>(oldChild)->firstTextBox();
++ InlineTextBox* nextTextBox;
++ assert(!box || box->parent());
++ // delete all the text boxes
++ for (; box; box = nextTextBox) {
++ nextTextBox = box->nextTextBox();
++ box->remove();
++ box->deleteLine(renderArena());
++ }
++ } else if (oldChild->isInlineFlow()) {
++ InlineFlowBox* box = static_cast<RenderFlow*>(oldChild)->firstLineBox();
++ InlineFlowBox* nextFlowBox;
++ assert(!box || box->parent());
++ // delete all the flow
++ for (; box; box = nextFlowBox) {
++ nextFlowBox = box->nextFlowBox();
++ box->remove();
++ box->deleteLine(renderArena());
+ }
+ }
+ }
++
+ // if oldChild is the start or end of the selection, then clear
+ // the selection to avoid problems of invalid pointers
+
+Index: khtml/rendering/render_box.cpp
+===================================================================
+--- khtml/rendering/render_box.cpp (.../tags/KDE/4.2.3/kdelibs) (wersja 974229)
++++ khtml/rendering/render_box.cpp (.../branches/KDE/4.2/kdelibs) (wersja 974229)
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kde4-kdelibs/kde4-kdelibs-branch.diff?r1=1.12&r2=1.13&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kde4-kdelibs/kde4-kdelibs.spec?r1=1.146&r2=1.147&f=u
More information about the pld-cvs-commit
mailing list