[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.1/kdelibs/khtml
From:       Germain Garand <germain () ebooksfrance ! org>
Date:       2008-09-24 4:08:06
Message-ID: 1222229286.490284.4286.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 864155 by ggarand:

automatically merged revision 864146:
replace this backingstore hack with either an update or a repaint
depending on emergency - as it would occasionally cause crashes.

BUG: 171170

 M  +6 -6      khtmlview.cpp  


--- branches/KDE/4.1/kdelibs/khtml/khtmlview.cpp #864154:864155
@@ -2218,19 +2218,19 @@
 		    y += ap.y();
 
 		    QRect pr = isUpdate ? static_cast<QUpdateLaterEvent*>(e)->region().boundingRect() : \
                static_cast<QPaintEvent*>(e)->rect();
-                    bool asap = !isUpdate && !d->contentsMoving && \
qobject_cast<QAbstractScrollArea*>(c); +                    bool asap = !d->contentsMoving && \
qobject_cast<QAbstractScrollArea*>(c);  
                     if (isUpdate) {
                         setInPaintEventFlag(w, false);
-                        w->update(static_cast<QUpdateLaterEvent*>(e)->region());
+                        if (asap)
+                            w->repaint(static_cast<QUpdateLaterEvent*>(e)->region());
+                        else
+                            w->update(static_cast<QUpdateLaterEvent*>(e)->region());
                         setInPaintEventFlag(w);
-                        // implicitly call qt_syncBackingStore(w)
-                        QEvent fakeEvent(QEvent::UpdateRequest);
-                        static_cast<KHTMLBackingStoreHackWidget *>(w)->publicEvent(&fakeEvent);
                     }
 
 		    // QScrollView needs fast repaints
-		    if ( asap && !d->painting && m_part->xmlDocImpl() && m_part->xmlDocImpl()->renderer() &&
+		    if ( asap && !isUpdate && !d->painting && m_part->xmlDocImpl() && m_part->xmlDocImpl()->renderer() \
                &&
 		         !static_cast<khtml::RenderCanvas *>(m_part->xmlDocImpl()->renderer())->needsLayout() ) {
 		        repaintContents(x + pr.x(), y + pr.y(),
 	                                        pr.width(), pr.height()+1); // ### investigate that +1 (shows \
up when


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic