summaryrefslogtreecommitdiff
path: root/src/protocols
diff options
context:
space:
mode:
authorusering-around <useruseringaround@proton.me>2025-09-11 20:42:20 +0300
committerGitHub <noreply@github.com>2025-09-11 19:42:20 +0200
commit38169c8fddcd21bd2c4ccebfa0c32100d5356aa0 (patch)
treee268f85e575db585db80133cbd8b036a6d1c63ca /src/protocols
parentc7b99691290ef16e04cf0cb4a5007ef29fccc229 (diff)
input: support xkb v2 format (#11482)
Diffstat (limited to 'src/protocols')
-rw-r--r--src/protocols/InputMethodV2.cpp10
-rw-r--r--src/protocols/VirtualKeyboard.cpp2
-rw-r--r--src/protocols/core/Seat.cpp6
3 files changed, 9 insertions, 9 deletions
diff --git a/src/protocols/InputMethodV2.cpp b/src/protocols/InputMethodV2.cpp
index 6eb419dc..d66d1f24 100644
--- a/src/protocols/InputMethodV2.cpp
+++ b/src/protocols/InputMethodV2.cpp
@@ -33,22 +33,22 @@ void CInputMethodKeyboardGrabV2::sendKeyboardData(SP<IKeyboard> keyboard) {
m_lastKeyboard = keyboard;
- auto keymapFD = allocateSHMFile(keyboard->m_xkbKeymapString.length() + 1);
+ auto keymapFD = allocateSHMFile(keyboard->m_xkbKeymapV1String.length() + 1);
if UNLIKELY (!keymapFD.isValid()) {
LOGM(ERR, "Failed to create a keymap file for keyboard grab");
return;
}
- void* data = mmap(nullptr, keyboard->m_xkbKeymapString.length() + 1, PROT_READ | PROT_WRITE, MAP_SHARED, keymapFD.get(), 0);
+ void* data = mmap(nullptr, keyboard->m_xkbKeymapV1String.length() + 1, PROT_READ | PROT_WRITE, MAP_SHARED, keymapFD.get(), 0);
if UNLIKELY (data == MAP_FAILED) {
LOGM(ERR, "Failed to mmap a keymap file for keyboard grab");
return;
}
- memcpy(data, keyboard->m_xkbKeymapString.c_str(), keyboard->m_xkbKeymapString.length());
- munmap(data, keyboard->m_xkbKeymapString.length() + 1);
+ memcpy(data, keyboard->m_xkbKeymapV1String.c_str(), keyboard->m_xkbKeymapV1String.length());
+ munmap(data, keyboard->m_xkbKeymapV1String.length() + 1);
- m_resource->sendKeymap(WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, keymapFD.get(), keyboard->m_xkbKeymapString.length() + 1);
+ m_resource->sendKeymap(WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, keymapFD.get(), keyboard->m_xkbKeymapV1String.length() + 1);
sendMods(keyboard->m_modifiersState.depressed, keyboard->m_modifiersState.latched, keyboard->m_modifiersState.locked, keyboard->m_modifiersState.group);
diff --git a/src/protocols/VirtualKeyboard.cpp b/src/protocols/VirtualKeyboard.cpp
index 6fe3eed5..2acc2298 100644
--- a/src/protocols/VirtualKeyboard.cpp
+++ b/src/protocols/VirtualKeyboard.cpp
@@ -88,7 +88,7 @@ CVirtualKeyboardV1Resource::CVirtualKeyboardV1Resource(SP<CZwpVirtualKeyboardV1>
return;
}
- auto xkbKeymap = xkb_keymap_new_from_string(xkbContext, sc<const char*>(keymapData), XKB_KEYMAP_FORMAT_TEXT_V1, XKB_KEYMAP_COMPILE_NO_FLAGS);
+ auto xkbKeymap = xkb_keymap_new_from_string(xkbContext, sc<const char*>(keymapData), XKB_KEYMAP_FORMAT_TEXT_V2, XKB_KEYMAP_COMPILE_NO_FLAGS);
munmap(keymapData, len);
if UNLIKELY (!xkbKeymap) {
diff --git a/src/protocols/core/Seat.cpp b/src/protocols/core/Seat.cpp
index 0b356c6f..7e1ff53b 100644
--- a/src/protocols/core/Seat.cpp
+++ b/src/protocols/core/Seat.cpp
@@ -333,9 +333,9 @@ void CWLKeyboardResource::sendKeymap(SP<IKeyboard> keyboard) {
if (!(PROTO::seat->m_currentCaps & eHIDCapabilityType::HID_INPUT_CAPABILITY_KEYBOARD))
return;
- std::string_view keymap = keyboard->m_xkbKeymapString;
- Hyprutils::OS::CFileDescriptor& fd = keyboard->m_xkbKeymapFD;
- uint32_t size = keyboard->m_xkbKeymapString.length() + 1;
+ std::string_view keymap = keyboard->m_xkbKeymapV1String;
+ Hyprutils::OS::CFileDescriptor& fd = keyboard->m_xkbKeymapV1FD;
+ uint32_t size = keyboard->m_xkbKeymapV1String.length() + 1;
if (keymap == m_lastKeymap)
return;