Combo repaint (Was:KDE 3.1.4)

Maksim Orlovich mo002j at mail.rochester.edu
Wed Jul 30 17:30:41 BST 2003


On Wed, 30 Jul 2003, Ralf Nolden wrote:

> On Mittwoch, 30. Juli 2003 14:42, Maksim Orlovich wrote:
> > On Wed, 30 Jul 2003, Ralf Nolden wrote:
> > > > Are their known issues? (I know of one toolbar layout fix)
> > >
> > > I encounter repaint errors on combo boxes with keramik on webpages like
> > > www. pro-linux.de, I guess that's one of the style bugs. When you go over
> > > the combo with the mouse, a repaint event gets triggered and the text on
> > > the combo is displayed correctly.
> >
> > What combination of Qt/KDE version? 
> 
> Qt-3.2.0 from ftp.trolltech.com + KDE 3.1.3 official sourcetarballs -> Woody 
> packages on download.kde.org

Hmm. I just realized there was a (un)merge error that affected a
backport of the bugfix for a related bug (I am not sure whether this is
the same bug or not). Can you please try the attached diff?

Alternatively, please tell me where exactly on pro-linux.de you see the
problem.. (keeping in mind that I don't speak German (yes, it happens,
even among KDE people..) )

-Maks

-------------- next part --------------
? changes.diff
? del.diff
? index.html
? ker_combo2.diff
? keramik.j
Index: keramik.cpp
===================================================================
RCS file: /home/kde/kdelibs/kstyles/keramik/keramik.cpp,v
retrieving revision 1.88.2.8
diff -u -3 -p -u -p -r1.88.2.8 keramik.cpp
--- keramik.cpp	7 Jul 2003 08:16:03 -0000	1.88.2.8
+++ keramik.cpp	30 Jul 2003 16:27:40 -0000
@@ -1764,24 +1764,22 @@ void KeramikStyle::drawComplexControl( C
 			QPainter* p2 = p;
 
 			QRect br = r;
+			
+			if (widget->parent() &&
+					( widget->parent()->inherits("QToolBar")|| !qstrcmp(widget->parent()->name(), kdeToolbarWidget) ) )
+				toolbarMode = true;
 
 			if (controls == SC_All)
 			{
-			    buf = new QPixmap( r.width(), r.height() );
-			    br.setX(0);
-			    br.setY(0);
-			    p2 = new QPainter(buf);
-					
-				//Double-buffer only when we are in the slower full-blend mode
-				if (widget->parent() &&
-						( widget->parent()->inherits("QToolBar")|| !qstrcmp(widget->parent()->name(), kdeToolbarWidget) ) )
-				{
-					//Ensure that we have clipping on, and have a sane base.
-					//If need be, Qt will shrink us to the paint region.
-					p->setClipping(true);
-					p->setClipRect(r);
-					toolbarMode = true;
-				}
+				buf = new QPixmap( r.width(), r.height() );
+				br.setX(0);
+				br.setY(0);
+				p2 = new QPainter(buf);
+				
+				//Ensure that we have clipping on, and have a sane base.
+				//If need be, Qt will shrink us to the paint region.
+				p->setClipping(true);
+				p->setClipRect(r);
 			}
 
 


More information about the kde-core-devel mailing list