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