KWin
Loading...
Searching...
No Matches
src
syncalarmx11filter.cpp
Go to the documentation of this file.
1
/*
2
KWin - the KDE window manager
3
This file is part of the KDE project.
4
5
SPDX-FileCopyrightText: 2017 Martin Flöser <mgraesslin@kde.org>
6
7
SPDX-License-Identifier: GPL-2.0-or-later
8
*/
9
10
#include "
syncalarmx11filter.h
"
11
#include "
utils/xcbutils.h
"
12
#include "
workspace.h
"
13
#include "
x11window.h
"
14
15
namespace
KWin
16
{
17
18
SyncAlarmX11Filter::SyncAlarmX11Filter
()
19
:
X11EventFilter
(QList<int>{
Xcb::Extensions::self
()->
syncAlarmNotifyEvent
()})
20
{
21
}
22
23
bool
SyncAlarmX11Filter::event
(xcb_generic_event_t *event)
24
{
25
auto
alarmEvent =
reinterpret_cast<
xcb_sync_alarm_notify_event_t *
>
(
event
);
26
auto
client =
workspace
()->
findClient
([alarmEvent](
const
X11Window
*client) {
27
const
auto
syncRequest = client->
syncRequest
();
28
return
alarmEvent->
alarm
== syncRequest.alarm && alarmEvent->counter_value.hi == syncRequest.value.hi && alarmEvent->counter_value.lo == syncRequest.value.lo;
29
});
30
if
(client) {
31
client->
handleSync
();
32
}
33
return
false
;
34
}
35
36
}
// namespace KWin
KWin::SyncAlarmX11Filter::event
bool event(xcb_generic_event_t *event) override
Definition
syncalarmx11filter.cpp:23
KWin::SyncAlarmX11Filter::SyncAlarmX11Filter
SyncAlarmX11Filter()
Definition
syncalarmx11filter.cpp:18
KWin::Workspace::findClient
X11Window * findClient(std::function< bool(const X11Window *)> func) const
Finds the first Client matching the condition expressed by passed in func.
Definition
workspace.cpp:1905
KWin::X11EventFilter
Definition
x11eventfilter.h:22
KWin::X11Window
Definition
x11window.h:72
KWin::X11Window::syncRequest
const SyncRequest & syncRequest() const
Definition
x11window.h:287
KWin::X11Window::handleSync
void handleSync()
Definition
x11window.cpp:3015
KWin::Xcb::Extensions::self
static Extensions * self()
Definition
xcbutils.cpp:346
KWin::Xcb::Extensions::syncAlarmNotifyEvent
int syncAlarmNotifyEvent() const
Definition
xcbutils.cpp:539
KWin
Definition
activation_test.cpp:20
KWin::workspace
Workspace * workspace()
Definition
workspace.h:830
KWin::X11Window::SyncRequest::alarm
xcb_sync_alarm_t alarm
Definition
x11window.h:281
syncalarmx11filter.h
workspace.h
x11window.h
xcbutils.h
Generated on Sat Feb 17 2024 01:42:10 for KWin by
1.10.0