Port SwitchEvent away from QEvent

wilder/Plasma/6.3
Vlad Zahorodnii 1 year ago
parent 7cad7d60c8
commit 42fc6e0ffb
  1. 14
      autotests/libinput/input_event_test.cpp
  2. 12
      src/debug_console.cpp
  3. 6
      src/input.cpp
  4. 2
      src/input.h
  5. 8
      src/input_event.cpp
  6. 26
      src/input_event.h
  7. 2
      src/input_event_spy.h
  8. 4
      src/lidswitchtracker.cpp
  9. 4
      src/tabletmodemanager.cpp

@ -164,11 +164,15 @@ void InputEventsTest::testInitSwitchEvent()
QFETCH(SwitchEvent::State, state);
QFETCH(quint64, timestamp);
SwitchEvent event(state, std::chrono::microseconds(timestamp), &d);
QCOMPARE(event.state(), state);
QCOMPARE(event.timestamp(), std::chrono::microseconds(timestamp));
QCOMPARE(event.device(), &d);
SwitchEvent event{
.device = &d,
.state = state,
.timestamp = std::chrono::microseconds(timestamp),
};
QCOMPARE(event.state, state);
QCOMPARE(event.timestamp, std::chrono::microseconds(timestamp));
QCOMPARE(event.device, &d);
}
QTEST_GUILESS_MAIN(InputEventsTest)

@ -459,18 +459,18 @@ void DebugConsoleFilter::switchEvent(SwitchEvent *event)
QString text = s_hr;
text.append(s_tableStart);
text.append(tableHeaderRow(i18nc("A hardware switch (e.g. notebook lid) got toggled", "Switch toggled")));
text.append(timestampRow(event->timestamp()));
text.append(timestampRowUsec(event->timestamp()));
text.append(deviceRow(event->device()));
text.append(timestampRow(event->timestamp));
text.append(timestampRowUsec(event->timestamp));
text.append(deviceRow(event->device));
QString switchName;
if (event->device()->isLidSwitch()) {
if (event->device->isLidSwitch()) {
switchName = i18nc("Name of a hardware switch", "Notebook lid");
} else if (event->device()->isTabletModeSwitch()) {
} else if (event->device->isTabletModeSwitch()) {
switchName = i18nc("Name of a hardware switch", "Tablet mode");
}
text.append(tableRow(i18nc("A hardware switch", "Switch"), switchName));
QString switchState;
switch (event->state()) {
switch (event->state) {
case SwitchEvent::State::Off:
switchState = i18nc("The hardware switch got turned off", "Off");
break;

@ -2897,7 +2897,11 @@ void InputRedirection::addInputDevice(InputDevice *device)
connect(device, &InputDevice::touchFrame, m_touch, &TouchInputRedirection::frame);
auto handleSwitchEvent = [this](SwitchEvent::State state, std::chrono::microseconds time, InputDevice *device) {
SwitchEvent event(state, time, device);
SwitchEvent event{
.device = device,
.state = state,
.timestamp = time,
};
processSpies(std::bind(&InputEventSpy::switchEvent, std::placeholders::_1, &event));
processFilters(std::bind(&InputEventFilter::switchEvent, std::placeholders::_1, &event));
};

@ -41,7 +41,7 @@ class PointerInputRedirection;
class TabletInputRedirection;
class TouchInputRedirection;
class WindowSelectorFilter;
class SwitchEvent;
struct SwitchEvent;
class TabletEvent;
class MouseEvent;
class WheelEvent;

@ -58,14 +58,6 @@ std::chrono::microseconds KeyEvent::timestamp() const
return m_timestamp;
}
SwitchEvent::SwitchEvent(State state, std::chrono::microseconds timestamp, InputDevice *device)
: QEvent(QEvent::User)
, m_state(state)
, m_timestamp(timestamp)
, m_device(device)
{
}
TabletEvent::TabletEvent(Type t, const QPointingDevice *dev, const QPointF &pos, const QPointF &globalPos,
qreal pressure, float xTilt, float yTilt,
float tangentialPressure, qreal rotation, float z,

@ -165,34 +165,16 @@ private:
const std::chrono::microseconds m_timestamp;
};
class SwitchEvent : public QEvent
struct SwitchEvent
{
public:
enum class State {
Off,
On
};
explicit SwitchEvent(State state, std::chrono::microseconds timestamp, InputDevice *device);
State state() const
{
return m_state;
}
std::chrono::microseconds timestamp() const
{
return m_timestamp;
}
InputDevice *device() const
{
return m_device;
}
private:
State m_state;
std::chrono::microseconds m_timestamp;
InputDevice *m_device;
InputDevice *device;
State state;
std::chrono::microseconds timestamp;
};
class TabletEvent : public QTabletEvent

@ -20,7 +20,7 @@ namespace KWin
class KeyEvent;
class MouseEvent;
class WheelEvent;
class SwitchEvent;
struct SwitchEvent;
class TabletEvent;
struct TabletToolButtonEvent;
struct TabletPadButtonEvent;

@ -25,8 +25,8 @@ bool LidSwitchTracker::isLidClosed() const
void LidSwitchTracker::switchEvent(KWin::SwitchEvent *event)
{
if (event->device()->isLidSwitch()) {
const bool state = event->state() == SwitchEvent::State::On;
if (event->device->isLidSwitch()) {
const bool state = event->state == SwitchEvent::State::On;
if (state != m_isLidClosed) {
m_isLidClosed = state;
Q_EMIT lidStateChanged();

@ -52,11 +52,11 @@ public:
void switchEvent(SwitchEvent *event) override
{
if (!event->device()->isTabletModeSwitch()) {
if (!event->device->isTabletModeSwitch()) {
return;
}
switch (event->state()) {
switch (event->state) {
case SwitchEvent::State::Off:
m_parent->setIsTablet(false);
break;

Loading…
Cancel
Save