Index: src/kmessagewidget.cpp =================================================================== --- src/kmessagewidget.cpp +++ src/kmessagewidget.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -200,6 +201,8 @@ break; case KMessageWidget::Error: bg1.setRgb(218, 68, 83); // values taken from kcolorscheme.cpp (Negative) + // #357210: use darker color to improve the visibility of close button. + bg1 = bg1.darker(110); fg.setRgb(239, 240, 241); break; } @@ -343,6 +346,10 @@ { if (event->type() == QEvent::Polish && !d->content->layout()) { d->createLayout(); + } else if (event->type() == QEvent::WindowActivate) { + // Widget is visible AND palette() has the Active color group. + // We are now ready to update the colors. + d->updateColors(); } return QFrame::event(event); } @@ -401,6 +408,7 @@ void KMessageWidget::setCloseButtonVisible(bool show) { d->closeButton->setVisible(show); + d->updateColors(); updateGeometry(); }