diff options
Diffstat (limited to 'src/compositor/wayland_wrapper')
-rw-r--r-- | src/compositor/wayland_wrapper/wlshellsurface.cpp | 4 | ||||
-rw-r--r-- | src/compositor/wayland_wrapper/wlsurface.cpp | 8 | ||||
-rw-r--r-- | src/compositor/wayland_wrapper/wlsurface.h | 4 |
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; |