summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylanddecoration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/wayland/qwaylanddecoration.cpp')
-rw-r--r--src/plugins/platforms/wayland/qwaylanddecoration.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/plugins/platforms/wayland/qwaylanddecoration.cpp b/src/plugins/platforms/wayland/qwaylanddecoration.cpp
index 258a54495..f8c374a6c 100644
--- a/src/plugins/platforms/wayland/qwaylanddecoration.cpp
+++ b/src/plugins/platforms/wayland/qwaylanddecoration.cpp
@@ -108,6 +108,18 @@ void QWaylandDecoration::paint(QPaintDevice *device)
p.restore();
}
+ // Window icon
+ QIcon icon = m_wayland_window->windowIcon();
+ if (!icon.isNull()) {
+ QPixmap pixmap = icon.pixmap(QSize(128, 128));
+ QPixmap scaled = pixmap.scaled(22, 22, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+
+ QRectF iconRect(0, 0, 22, 22);
+ p.drawPixmap(iconRect.adjusted(margins().left() + BUTTON_SPACING, 4,
+ margins().left() + BUTTON_SPACING, 4),
+ scaled, iconRect);
+ }
+
// Window title
QString windowTitleText = window()->title();
if (!windowTitleText.isEmpty()) {
@@ -117,7 +129,8 @@ void QWaylandDecoration::paint(QPaintDevice *device)
}
QRect titleBar = top;
- titleBar.setLeft(m_margins.left() + BUTTON_SPACING);
+ titleBar.setLeft(m_margins.left() + BUTTON_SPACING +
+ (icon.isNull() ? 0 : 22 + BUTTON_SPACING));
titleBar.setRight(minimizeButtonRect().left() - BUTTON_SPACING);
p.save();