mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-07-26 09:41:57 -07:00
virtual-keyboard: destroy on vdestroy event
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user