summaryrefslogtreecommitdiff
path: root/src/protocols/XDGActivation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocols/XDGActivation.cpp')
-rw-r--r--src/protocols/XDGActivation.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/protocols/XDGActivation.cpp b/src/protocols/XDGActivation.cpp
index f25ffca8..165bcd7e 100644
--- a/src/protocols/XDGActivation.cpp
+++ b/src/protocols/XDGActivation.cpp
@@ -1,6 +1,7 @@
#include "XDGActivation.hpp"
#include "../managers/TokenManager.hpp"
#include "../Compositor.hpp"
+#include "../managers/SeatManager.hpp"
#include "core/Compositor.hpp"
#include <algorithm>
@@ -23,6 +24,12 @@ CXDGActivationToken::CXDGActivationToken(SP<CXdgActivationTokenV1> resource_) :
return;
}
+ if (!g_pSeatManager->serialValid(g_pSeatManager->seatResourceForClient(m_resource->client()), m_serial)) {
+ LOGM(LOG, "serial not found, sending invalid token");
+ m_resource->sendDone("__invalid__");
+ return;
+ }
+
m_committed = true;
// send done with a new token
m_token = g_pTokenManager->registerNewToken({}, std::chrono::months{12});