X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ed40f6f85c9c07c3c1224ae20601082c0309a631..29ec53f34486f08c1655b64ba95a949c1e1094af:/lib/actions/action.h diff --git a/lib/actions/action.h b/lib/actions/action.h index 7bd71259..9628a69a 100644 --- a/lib/actions/action.h +++ b/lib/actions/action.h @@ -31,8 +31,9 @@ public: void bindAction(const std::string &context, int priority, SWIG_PYOBJECT(ePyObject) function); void unbindAction(const std::string &context, SWIG_PYOBJECT(ePyObject) function); - - void bindKey(const std::string &device, int key, int flags, const std::string &context, const std::string &action); + + void bindKey(const std::string &domain, const std::string &device, int key, int flags, const std::string &context, const std::string &action); + void unbindKeyDomain(const std::string &domain); void keyPressed(const std::string &device, int key, int flags); @@ -42,13 +43,18 @@ private: static eActionMap *instance; struct eActionBinding { + eActionBinding() + :m_prev_seen_make_key(-1) + {} // eActionContext *m_context; std::string m_context; // FIXME + std::string m_domain; ePyObject m_fnc; eWidget *m_widget; int m_id; + int m_prev_seen_make_key; }; std::multimap m_bindings; @@ -57,6 +63,7 @@ private: struct eNativeKeyBinding { std::string m_device; + std::string m_domain; int m_key; int m_flags; @@ -70,6 +77,7 @@ private: struct ePythonKeyBinding { std::string m_device; + std::string m_domain; int m_key; int m_flags; @@ -79,7 +87,7 @@ private: std::multimap m_python_keys; #endif }; -SWIG_TEMPLATE_TYPEDEF_REPLACE(ePtr, eActionMap); +SWIG_TEMPLATE_TYPEDEF(ePtr, eActionMap); SWIG_EXTEND(ePtr, static ePtr getInstance() {