mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-26 05:45:59 +01:00
virtual-keyboard: destroy on vdestroy event
This commit is contained in:
parent
6aa2d123ae
commit
7d49819b5e
2 changed files with 8 additions and 0 deletions
|
@ -7,6 +7,7 @@
|
|||
#include "../desktop/Popup.hpp"
|
||||
#include "AnimatedVariable.hpp"
|
||||
#include "../desktop/WLSurface.hpp"
|
||||
#include "signal/Listener.hpp"
|
||||
#include "Region.hpp"
|
||||
|
||||
class CMonitor;
|
||||
|
@ -92,6 +93,10 @@ struct SKeyboard {
|
|||
|
||||
void updateXKBTranslationState(xkb_keymap* const keymap = nullptr);
|
||||
|
||||
struct {
|
||||
CHyprSignalListener destroyVKeyboard;
|
||||
} listeners;
|
||||
|
||||
// For the list lookup
|
||||
bool operator==(const SKeyboard& rhs) const {
|
||||
return keyboard == rhs.keyboard;
|
||||
|
|
|
@ -816,6 +816,9 @@ void CInputManager::newVirtualKeyboard(SP<CVirtualKeyboard> keyboard) {
|
|||
},
|
||||
PNEWKEYBOARD, "VKeyboard");
|
||||
|
||||
// TODO: this pointer pass sucks.
|
||||
PNEWKEYBOARD->listeners.destroyVKeyboard = keyboard->events.destroy.registerListener([this, PNEWKEYBOARD](std::any data) { destroyKeyboard(PNEWKEYBOARD); });
|
||||
|
||||
disableAllKeyboards(true);
|
||||
|
||||
m_pActiveKeyboard = PNEWKEYBOARD;
|
||||
|
|
Loading…
Reference in a new issue