Home
Phabricator
Search
Log In
Paste
P241
Masterwork From Distant Lands
Active
Public
Actions
Authored by
davidedmundson
on Jul 12 2018, 10:42 AM.
Edit Paste
Archive Paste
View Raw File
Subscribe
Mute Notifications
Award Token
Flag For Later
Tags
None
Subscribers
None
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
index df458e85d7..0b9f5d1177 100644
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -531,6 +531,7 @@ void QXcbScreen::windowShown(QXcbWindow *window)
{
// Freedesktop.org Startup Notification
if (!connection()->startupId().isEmpty() && window->window()->isTopLevel()) {
+ window->setStartupId(connection()->startupId());
sendStartupMessage(QByteArrayLiteral("remove: ID=") + connection()->startupId());
connection()->clearStartupId();
}
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index c65fab449f..021ae98741 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -273,6 +273,8 @@ static QWindow *childWindowAt(QWindow *win, const QPoint &p)
static const char *wm_window_type_property_id = "_q_xcb_wm_window_type";
static const char *wm_window_role_property_id = "_q_xcb_wm_window_role";
+static const char *wm_window_startup_id = "_NET_STARTUP_ID";
+
QXcbWindow::QXcbWindow(QWindow *window)
: QPlatformWindow(window)
@@ -1667,6 +1669,11 @@ void QXcbWindow::setWmWindowRoleStatic(QWindow *window, const QByteArray &role)
window->setProperty(wm_window_role_property_id, role);
}
+void QXcbWindow::setStartupId(QWindow *window, const QByteArray &id)
+{
+ window->setProperty(wm_window_startup_id, id);
+}
+
uint QXcbWindow::visualIdStatic(QWindow *window)
{
if (window && window->handle())
diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h
index cb8af9e666..50de02e4d4 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.h
+++ b/src/plugins/platforms/xcb/qxcbwindow.h
@@ -182,6 +182,8 @@ public:
virtual void create();
virtual void destroy();
+ void setStartupId(const QByteArray &id);
+
static QString windowTitle(const QXcbConnection *conn, xcb_window_t window);
public Q_SLOTS:
davidedmundson
edited the content of this paste.
(Show Details)
Jul 12 2018, 10:42 AM
davidedmundson
changed the title of this paste from untitled to
Masterwork From Distant Lands
.
Log In to Comment