File indexing completed on 2024-04-28 05:31:22
0001 /** Copyright (C) 2020 Aleix Pol Gonzalez <aleixpol@kde.org> 0002 * SPDX-License-Identifier: LGPL-3.0-or-later 0003 */ 0004 0005 #include "qwaylandxdgactivationv1_p.h" 0006 #include <QtWaylandClient/private/qwaylanddisplay_p.h> 0007 #include <QtWaylandClient/private/qwaylandinputdevice_p.h> 0008 0009 QWaylandXdgActivationV1::QWaylandXdgActivationV1() 0010 : QWaylandClientExtensionTemplate<QWaylandXdgActivationV1>(1) 0011 { 0012 initialize(); 0013 } 0014 0015 QWaylandXdgActivationV1::~QWaylandXdgActivationV1() 0016 { 0017 if (isActive()) { 0018 destroy(); 0019 } 0020 } 0021 0022 QWaylandXdgActivationTokenV1 *QWaylandXdgActivationV1::requestXdgActivationToken(QtWaylandClient::QWaylandDisplay *display, 0023 struct ::wl_surface *surface, 0024 std::optional<uint32_t> serial, 0025 const QString &app_id) 0026 { 0027 auto wl = get_activation_token(); 0028 auto provider = new QWaylandXdgActivationTokenV1; 0029 provider->init(wl); 0030 0031 if (surface) { 0032 provider->set_surface(surface); 0033 } 0034 if (!app_id.isEmpty()) { 0035 provider->set_app_id(app_id); 0036 } 0037 if (serial && display->lastInputDevice()) { 0038 provider->set_serial(*serial, display->lastInputDevice()->wl_seat()); 0039 } 0040 provider->commit(); 0041 return provider; 0042 } 0043 0044 #include "moc_qwaylandxdgactivationv1_p.cpp"