You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
801 B
39 lines
801 B
/* |
|
KWin - the KDE window manager |
|
This file is part of the KDE project. |
|
|
|
SPDX-FileCopyrightText: 2023 Xaver Hugl <xaver.hugl@gmail.com> |
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later |
|
*/ |
|
#include "lidswitchtracker.h" |
|
#include "core/inputdevice.h" |
|
#include "input_event.h" |
|
|
|
namespace KWin |
|
{ |
|
|
|
LidSwitchTracker::LidSwitchTracker() |
|
{ |
|
input()->installInputEventSpy(this); |
|
} |
|
|
|
bool LidSwitchTracker::isLidClosed() const |
|
{ |
|
return m_isLidClosed; |
|
} |
|
|
|
void LidSwitchTracker::switchEvent(KWin::SwitchEvent *event) |
|
{ |
|
if (event->device()->isLidSwitch()) { |
|
const bool state = event->state() == SwitchEvent::State::On; |
|
if (state != m_isLidClosed) { |
|
m_isLidClosed = state; |
|
Q_EMIT lidStateChanged(); |
|
} |
|
} |
|
} |
|
|
|
} |
|
|
|
#include "moc_lidswitchtracker.cpp"
|
|
|