SVN commit 504601 by staniek: Aditional fix to make KURLLabel as compatible with the old behaviour as possible (required at least by Konqueror): When size policy is set to fixed/fixed, keep margin == 0 and accept mouse clicks for entire widget's area. thx to: Stephan Binner M +16 -6 kurllabel.cpp M +5 -0 kurllabel.h --- branches/KDE/3.5/kdelibs/kdeui/kurllabel.cpp #504600:504601 @@ -405,6 +405,8 @@ QRect KURLLabel::activeRect() const { QRect r( contentsRect() ); + if (text().isEmpty() || (!d->MarginAltered && sizePolicy() == QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed))) + return r; //fixed size is sometimes used with pixmap int hAlign = QApplication::horizontalAlignment( alignment() ); int indentX = (hAlign && indent()>0) ? indent() : 0; QFontMetrics fm(font()); @@ -422,18 +424,26 @@ void KURLLabel::setMargin( int margin ) { - QLabel::setMargin(margin); - d->MarginAltered = true; + QLabel::setMargin(margin); + d->MarginAltered = true; } void KURLLabel::setFocusPolicy( FocusPolicy policy ) { - QLabel::setFocusPolicy(policy); - if (!d->MarginAltered) { - QLabel::setMargin(policy == NoFocus ? 0 : 3); //better default : better look when focused - } + QLabel::setFocusPolicy(policy); + if (!d->MarginAltered) { + QLabel::setMargin(policy == NoFocus ? 0 : 3); //better default : better look when focused + } } +void KURLLabel::setSizePolicy ( QSizePolicy policy ) +{ + QLabel::setSizePolicy(policy); + if (!d->MarginAltered && policy.horData()==QSizePolicy::Fixed && policy.verData()==QSizePolicy::Fixed) { + QLabel::setMargin(0); //better default : better look when fixed size + } +} + void KURLLabel::virtual_hook( int, void* ) { /*BASE::virtual_hook( id, data );*/ } --- branches/KDE/3.5/kdelibs/kdeui/kurllabel.h #504600:504601 @@ -163,6 +163,11 @@ */ virtual void setFocusPolicy ( FocusPolicy policy ); + /** + * Reimplemented for internal reasons, the API is not affected. + */ + virtual void setSizePolicy ( QSizePolicy ); + public slots: /** * Turns on or off the underlining.