summaryrefslogtreecommitdiffstats
path: root/src/compositor
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@qt.io>2022-03-28 12:26:03 +0200
committerPaul Olav Tvete <paul.tvete@qt.io>2022-03-29 12:07:04 +0000
commitc104e87825fcd8272ee9720e301570cbe48f82fa (patch)
treeb6a46879e9ddf22a1da6fd7dda41f0694a1e7313 /src/compositor
parent2aa3e55f7f4514cda9c0d0fa6de35f55584810ad (diff)
Move internal function to private class
checkAndRepairModifierState() was never meant to be a public function. Change-Id: Ia8946523b5ae79170490dc78a509ed1e132d9832 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/compositor')
-rw-r--r--src/compositor/compositor_api/qwaylandkeyboard.cpp25
-rw-r--r--src/compositor/compositor_api/qwaylandkeyboard.h2
-rw-r--r--src/compositor/compositor_api/qwaylandkeyboard_p.h1
-rw-r--r--src/compositor/compositor_api/qwaylandseat.cpp3
4 files changed, 15 insertions, 16 deletions
diff --git a/src/compositor/compositor_api/qwaylandkeyboard.cpp b/src/compositor/compositor_api/qwaylandkeyboard.cpp
index aee9e7e77..97cc3138c 100644
--- a/src/compositor/compositor_api/qwaylandkeyboard.cpp
+++ b/src/compositor/compositor_api/qwaylandkeyboard.cpp
@@ -513,12 +513,11 @@ void QWaylandKeyboard::sendKeyReleaseEvent(uint code)
d->sendKeyEvent(code, WL_KEYBOARD_KEY_STATE_RELEASED);
}
-void QWaylandKeyboard::checkAndRepairModifierState(QKeyEvent *ke)
+void QWaylandKeyboardPrivate::checkAndRepairModifierState(QKeyEvent *ke)
{
#if QT_CONFIG(xkbcommon)
- Q_D(QWaylandKeyboard);
- if (ke->modifiers() != d->currentModifierState) {
- if (d->focusResource && ke->key() != Qt::Key_Shift
+ if (ke->modifiers() != currentModifierState) {
+ if (focusResource && ke->key() != Qt::Key_Shift
&& ke->key() != Qt::Key_Control && ke->key() != Qt::Key_Alt) {
// Only repair the state for non-modifier keys
// ### slightly awkward because the standard modifier handling
@@ -526,19 +525,19 @@ void QWaylandKeyboard::checkAndRepairModifierState(QKeyEvent *ke)
// key event is delivered
uint32_t mods = 0;
- if (d->shiftIndex == 0 && d->controlIndex == 0)
- d->maybeUpdateXkbScanCodeTable();
+ if (shiftIndex == 0 && controlIndex == 0)
+ maybeUpdateXkbScanCodeTable();
if (ke->modifiers() & Qt::ShiftModifier)
- mods |= 1 << d->shiftIndex;
+ mods |= 1 << shiftIndex;
if (ke->modifiers() & Qt::ControlModifier)
- mods |= 1 << d->controlIndex;
+ mods |= 1 << controlIndex;
if (ke->modifiers() & Qt::AltModifier)
- mods |= 1 << d->altIndex;
- qCDebug(qLcWaylandCompositor) << "Keyboard modifier state mismatch detected for event" << ke << "state:" << d->currentModifierState << "repaired:" << Qt::hex << mods;
- d->send_modifiers(d->focusResource->handle, compositor()->nextSerial(), mods,
- 0, 0, d->group);
- d->currentModifierState = ke->modifiers();
+ mods |= 1 << altIndex;
+ qCDebug(qLcWaylandCompositor) << "Keyboard modifier state mismatch detected for event" << ke << "state:" << currentModifierState << "repaired:" << Qt::hex << mods;
+ send_modifiers(focusResource->handle, compositor()->nextSerial(), mods,
+ 0, 0, group);
+ currentModifierState = ke->modifiers();
}
}
#else
diff --git a/src/compositor/compositor_api/qwaylandkeyboard.h b/src/compositor/compositor_api/qwaylandkeyboard.h
index 9f7287a22..834260e37 100644
--- a/src/compositor/compositor_api/qwaylandkeyboard.h
+++ b/src/compositor/compositor_api/qwaylandkeyboard.h
@@ -67,8 +67,6 @@ public:
virtual void sendKeyPressEvent(uint code);
virtual void sendKeyReleaseEvent(uint code);
- void checkAndRepairModifierState(QKeyEvent *ke);
-
QWaylandSurface *focus() const;
QWaylandClient *focusClient() const;
diff --git a/src/compositor/compositor_api/qwaylandkeyboard_p.h b/src/compositor/compositor_api/qwaylandkeyboard_p.h
index 6ae0b4412..942e41918 100644
--- a/src/compositor/compositor_api/qwaylandkeyboard_p.h
+++ b/src/compositor/compositor_api/qwaylandkeyboard_p.h
@@ -88,6 +88,7 @@ public:
void keyEvent(uint code, uint32_t state);
void sendKeyEvent(uint code, uint32_t state);
void updateModifierState(uint code, uint32_t state);
+ void checkAndRepairModifierState(QKeyEvent *ke);
void maybeUpdateKeymap();
void checkFocusResource(Resource *resource);
diff --git a/src/compositor/compositor_api/qwaylandseat.cpp b/src/compositor/compositor_api/qwaylandseat.cpp
index 6c080b825..20459dc2d 100644
--- a/src/compositor/compositor_api/qwaylandseat.cpp
+++ b/src/compositor/compositor_api/qwaylandseat.cpp
@@ -41,6 +41,7 @@
#include <QtWaylandCompositor/QWaylandKeymap>
#include <QtWaylandCompositor/private/qwaylandseat_p.h>
#include <QtWaylandCompositor/private/qwaylandcompositor_p.h>
+#include <QtWaylandCompositor/private/qwaylandkeyboard_p.h>
#if QT_CONFIG(wayland_datadevice)
#include <QtWaylandCompositor/private/qwldatadevice_p.h>
#endif
@@ -518,7 +519,7 @@ void QWaylandSeat::sendFullKeyEvent(QKeyEvent *event)
}
if (event->type() == QEvent::KeyPress) {
- d->keyboard->checkAndRepairModifierState(event);
+ QWaylandKeyboardPrivate::get(d->keyboard.data())->checkAndRepairModifierState(event);
d->keyboard->sendKeyPressEvent(scanCode);
} else if (event->type() == QEvent::KeyRelease) {
d->keyboard->sendKeyReleaseEvent(scanCode);