summaryrefslogtreecommitdiffstats
path: root/src/compositor/wayland_wrapper
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/wayland_wrapper')
-rw-r--r--src/compositor/wayland_wrapper/wlshellsurface.cpp4
-rw-r--r--src/compositor/wayland_wrapper/wlsurface.cpp8
-rw-r--r--src/compositor/wayland_wrapper/wlsurface.h4
3 files changed, 14 insertions, 2 deletions
diff --git a/src/compositor/wayland_wrapper/wlshellsurface.cpp b/src/compositor/wayland_wrapper/wlshellsurface.cpp
index 8f837fc7a..aed1ee64f 100644
--- a/src/compositor/wayland_wrapper/wlshellsurface.cpp
+++ b/src/compositor/wayland_wrapper/wlshellsurface.cpp
@@ -284,8 +284,8 @@ void ShellSurface::set_class(struct wl_client *client,
const char *class_)
{
Q_UNUSED(client);
- Q_UNUSED(resource);
- Q_UNUSED(class_);
+ ShellSurface *self = static_cast<ShellSurface *>(resource->data);
+ self->surface()->setClassName(QString::fromUtf8(class_));
}
const struct wl_shell_surface_interface ShellSurface::shell_surface_interface = {
diff --git a/src/compositor/wayland_wrapper/wlsurface.cpp b/src/compositor/wayland_wrapper/wlsurface.cpp
index d05f36b52..d0586a90b 100644
--- a/src/compositor/wayland_wrapper/wlsurface.cpp
+++ b/src/compositor/wayland_wrapper/wlsurface.cpp
@@ -501,6 +501,14 @@ void Surface::surface_commit(wl_client *client, wl_resource *resource)
resolve<Surface>(resource)->commit();
}
+void Surface::setClassName(const QString &className)
+{
+ if (m_className != className) {
+ m_className = className;
+ emit waylandSurface()->classNameChanged();
+ }
+}
+
void Surface::setTitle(const QString &title)
{
if (m_title != title) {
diff --git a/src/compositor/wayland_wrapper/wlsurface.h b/src/compositor/wayland_wrapper/wlsurface.h
index 642e8f790..8ec87fa36 100644
--- a/src/compositor/wayland_wrapper/wlsurface.h
+++ b/src/compositor/wayland_wrapper/wlsurface.h
@@ -123,6 +123,9 @@ public:
static const struct wl_surface_interface surface_interface;
+ QString className() const { return m_className; }
+ void setClassName(const QString &className);
+
QString title() const { return m_title; }
void setTitle(const QString &title);
@@ -157,6 +160,7 @@ private:
QPointF m_position;
QSize m_size;
+ QString m_className;
QString m_title;
bool m_transientInactive;