EVENTS: Change DefaultEventManager to be the owner of the keymapper

This commit is contained in:
Bastien Bouclet 2020-02-19 20:07:11 +01:00 committed by Filippos Karapetis
parent 1f6700aa89
commit 22c75c644a
3 changed files with 4 additions and 29 deletions

View File

@ -68,6 +68,7 @@ DefaultEventManager::~DefaultEventManager() {
#ifdef ENABLE_VKEYBD
delete _vk;
#endif
delete _keymapper;
}
void DefaultEventManager::init() {

View File

@ -24,7 +24,7 @@
namespace Common {
EventDispatcher::EventDispatcher() : _autoFreeMapper(false), _mapper(nullptr) {
EventDispatcher::EventDispatcher() : _mapper(nullptr) {
}
EventDispatcher::~EventDispatcher() {
@ -37,11 +37,6 @@ EventDispatcher::~EventDispatcher() {
if (i->autoFree)
delete i->observer;
}
if (_autoFreeMapper) {
delete _mapper;
}
_mapper = nullptr;
}
void EventDispatcher::dispatch() {
@ -86,12 +81,8 @@ void EventDispatcher::clearEvents() {
}
void EventDispatcher::registerMapper(EventMapper *mapper, bool autoFree) {
if (_autoFreeMapper) {
delete _mapper;
}
void EventDispatcher::registerMapper(EventMapper *mapper) {
_mapper = mapper;
_autoFreeMapper = autoFree;
}

View File

@ -346,24 +346,8 @@ public:
/**
* Registers an event mapper with the dispatcher.
*
* The ownership of the "mapper" variable will pass
* to the EventDispatcher, thus it will be deleted
* with "delete", when EventDispatcher is destroyed.
*
* @param autoFree Destroy previous mapper [default]
* Normally we allow only one event mapper to exists,
* However Event Recorder must intervent into normal
* event flow without altering its semantics. Thus during
* Event Recorder playback and recording we allow
* two mappers.
*/
void registerMapper(EventMapper *mapper, bool autoFree = true);
/**
* Queries the setup event mapper.
*/
EventMapper *queryMapper() const { return _mapper; }
void registerMapper(EventMapper *mapper);
/**
* Registers a new EventSource with the Dispatcher.
@ -392,7 +376,6 @@ public:
*/
void unregisterObserver(EventObserver *obs);
private:
bool _autoFreeMapper;
EventMapper *_mapper;
struct Entry {