Hyprland/src/managers/input/InputMethodRelay.hpp

39 lines
915 B
C++
Raw Normal View History

2022-08-05 13:03:37 +02:00
#pragma once
#include "../../defines.hpp"
#include "../../helpers/WLClasses.hpp"
class CInputMethodRelay {
public:
CInputMethodRelay();
void onNewIME(wlr_input_method_v2*);
void onNewTextInput(wlr_text_input_v3*);
wlr_input_method_v2* m_pWLRIME = nullptr;
void commitIMEState(wlr_text_input_v3*);
void removeTextInput(wlr_text_input_v3*);
void onKeyboardFocus(wlr_surface*);
STextInput* getFocusedTextInput();
STextInput* getFocusableTextInput();
2022-08-05 13:19:16 +02:00
void setPendingSurface(STextInput*, wlr_surface*);
2022-08-05 16:21:08 +02:00
SIMEKbGrab* getIMEKeyboardGrab(SKeyboard*);
2022-08-05 13:03:37 +02:00
private:
2022-08-05 16:21:08 +02:00
std::unique_ptr<SIMEKbGrab> m_pKeyboardGrab;
2022-08-05 13:03:37 +02:00
std::list<STextInput> m_lTextInputs;
DYNLISTENER(textInputNew);
DYNLISTENER(IMECommit);
DYNLISTENER(IMEDestroy);
2022-08-05 16:21:08 +02:00
DYNLISTENER(IMEGrab);
2022-08-05 13:03:37 +02:00
void createNewTextInput(wlr_text_input_v3*);
};