File indexing completed on 2024-05-12 04:00:24

0001 /*
0002     SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "waylandxdgactivationv1_p.h"
0008 #include <QGuiApplication>
0009 
0010 WaylandXdgActivationV1::WaylandXdgActivationV1()
0011     : QWaylandClientExtensionTemplate<WaylandXdgActivationV1>(1)
0012 {
0013     initialize();
0014 }
0015 
0016 WaylandXdgActivationV1::~WaylandXdgActivationV1()
0017 {
0018     if (qGuiApp && isActive()) {
0019         destroy();
0020     }
0021 }
0022 
0023 WaylandXdgActivationV1 *WaylandXdgActivationV1::self()
0024 {
0025     static WaylandXdgActivationV1 *instance = new WaylandXdgActivationV1;
0026     return instance;
0027 }
0028 
0029 WaylandXdgActivationTokenV1 *
0030 WaylandXdgActivationV1::requestXdgActivationToken(wl_seat *seat, struct ::wl_surface *surface, uint32_t serial, const QString &app_id)
0031 {
0032     auto wl = get_activation_token();
0033     auto provider = new WaylandXdgActivationTokenV1;
0034     provider->init(wl);
0035 
0036     if (surface)
0037         provider->set_surface(surface);
0038 
0039     if (!app_id.isEmpty())
0040         provider->set_app_id(app_id);
0041 
0042     if (seat)
0043         provider->set_serial(serial, seat);
0044     provider->commit();
0045     return provider;
0046 }