KWin
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
idle.cpp
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2015 Martin Gräßlin <mgraesslin@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6#include "display.h"
7#include "idle_p.h"
8#include "seat.h"
9
10#include "idledetector.h"
11#include "input.h"
12
13namespace KWin
14{
15
16static const quint32 s_version = 1;
17
19 : QtWaylandServer::org_kde_kwin_idle(*display, s_version)
20{
21}
22
23void IdleInterfacePrivate::org_kde_kwin_idle_get_idle_timeout(Resource *resource, uint32_t id, wl_resource *seat, uint32_t timeout)
24{
26 Q_ASSERT(s);
27
28 wl_resource *idleTimoutResource = wl_resource_create(resource->client(), &org_kde_kwin_idle_timeout_interface, resource->version(), id);
29 if (!idleTimoutResource) {
30 wl_client_post_no_memory(resource->client());
31 return;
32 }
33
34 new IdleTimeoutInterface(std::chrono::milliseconds(timeout), idleTimoutResource);
35}
36
37IdleInterface::IdleInterface(Display *display, QObject *parent)
38 : QObject(parent)
39 , d(new IdleInterfacePrivate(display))
40{
41}
42
44
45IdleTimeoutInterface::IdleTimeoutInterface(std::chrono::milliseconds timeout, wl_resource *resource)
46 : QtWaylandServer::org_kde_kwin_idle_timeout(resource)
47{
48 auto detector = new IdleDetector(timeout, this);
49 connect(detector, &IdleDetector::idle, this, [this]() {
50 send_idle();
51 });
52 connect(detector, &IdleDetector::resumed, this, [this]() {
53 send_resumed();
54 });
55}
56
58{
59 wl_resource_destroy(resource->handle);
60}
61
63{
64 delete this;
65}
66
71
72}
73
74#include "moc_idle.cpp"
75#include "moc_idle_p.cpp"
Class holding the Wayland server display loop.
Definition display.h:34
~IdleInterface() override
IdleInterface(Display *display, QObject *parent=nullptr)
Definition idle.cpp:37
void org_kde_kwin_idle_get_idle_timeout(Resource *resource, uint32_t id, wl_resource *seat, uint32_t timeout) override
Definition idle.cpp:23
IdleInterfacePrivate(Display *display)
Definition idle.cpp:18
void org_kde_kwin_idle_timeout_destroy_resource(Resource *resource) override
Definition idle.cpp:62
void org_kde_kwin_idle_timeout_release(Resource *resource) override
Definition idle.cpp:57
IdleTimeoutInterface(std::chrono::milliseconds timeout, wl_resource *resource)
Definition idle.cpp:45
void org_kde_kwin_idle_timeout_simulate_user_activity(Resource *resource) override
Definition idle.cpp:67
Represents a Seat on the Wayland Display.
Definition seat.h:134
static SeatInterface * get(wl_resource *native)
Definition seat.cpp:429
InputRedirection * input()
Definition input.h:549