#include "ktooltipwindow_p.h"
#include <kcolorscheme.h>
+#include <kwindowsystem.h>
#include <QPainter>
#include <QVBoxLayout>
-#ifdef Q_WS_X11
- #include <QX11Info>
-#endif
-
KToolTipWindow::KToolTipWindow(QWidget* content) :
QWidget(0)
{
QColor toColor = palette().brush(QPalette::ToolTipBase).color();
QColor fromColor = KColorScheme::shade(toColor, KColorScheme::LightShade, 0.2);
-#ifdef Q_WS_X11
- const bool haveAlphaChannel = QX11Info::isCompositingManagerRunning();
-#else
- const bool haveAlphaChannel = false;
-#endif
+ const bool haveAlphaChannel = KWindowSystem::compositingActive();
if (haveAlphaChannel) {
painter.setRenderHint(QPainter::Antialiasing);
painter.translate(0.5, 0.5);
painter.setBrush(gradient);
const QRect rect(0, 0, width(), height());
- const qreal radius = 5;
-
- QPainterPath path;
- path.moveTo(rect.left(), rect.top() + radius);
- arc(path, rect.left() + radius, rect.top() + radius, radius, 180, -90);
- arc(path, rect.right() - radius, rect.top() + radius, radius, 90, -90);
- arc(path, rect.right() - radius, rect.bottom() - radius, radius, 0, -90);
- arc(path, rect.left() + radius, rect.bottom() - radius, radius, 270, -90);
- path.closeSubpath();
-
- painter.drawPath(path);
+ if (haveAlphaChannel) {
+ const qreal radius = 5.0;
+
+ QPainterPath path;
+ path.moveTo(rect.left(), rect.top() + radius);
+ arc(path, rect.left() + radius, rect.top() + radius, radius, 180, -90);
+ arc(path, rect.right() - radius, rect.top() + radius, radius, 90, -90);
+ arc(path, rect.right() - radius, rect.bottom() - radius, radius, 0, -90);
+ arc(path, rect.left() + radius, rect.bottom() - radius, radius, 270, -90);
+ path.closeSubpath();
+
+ painter.drawPath(path);
+ } else {
+ painter.drawRect(rect);
+ }
}
void KToolTipWindow::arc(QPainterPath& path, qreal cx, qreal cy, qreal radius, qreal angle, qreal sweeplength)