diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-02-27 23:14:56 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-02-27 23:15:24 +0000 |
| commit | e3373669e5544c3f18cf1edcd8fcfff9c6222f5c (patch) | |
| tree | 4b248f96e35919dad78e06bba255fdf107f1356e /src/events/Misc.cpp | |
| parent | f26d7aa58d78e764871ff026fb78f4322f0a6879 (diff) | |
wayland: implement keyboard_shortcuts_inhibit_v1
fixes #4568
Diffstat (limited to 'src/events/Misc.cpp')
| -rw-r--r-- | src/events/Misc.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/events/Misc.cpp b/src/events/Misc.cpp index b77cf038..35721832 100644 --- a/src/events/Misc.cpp +++ b/src/events/Misc.cpp @@ -262,3 +262,20 @@ void Events::listener_newTearingHint(wl_listener* listener, void* data) { }, NEWCTRL, "TearingController"); } + +void Events::listener_newShortcutInhibitor(wl_listener* listener, void* data) { + const auto INHIBITOR = (wlr_keyboard_shortcuts_inhibitor_v1*)data; + + const auto PINH = &g_pKeybindManager->m_lShortcutInhibitors.emplace_back(); + PINH->hyprListener_destroy.initCallback( + &INHIBITOR->events.destroy, + [](void* owner, void* data) { + const auto OWNER = (SShortcutInhibitor*)owner; + g_pKeybindManager->m_lShortcutInhibitors.remove(*OWNER); + }, + PINH, "ShortcutInhibitor"); + + PINH->pWlrInhibitor = INHIBITOR; + + Debug::log(LOG, "New shortcut inhibitor for surface {:x}", (uintptr_t)INHIBITOR->surface); +} |
