merged 1.4 r1007:1008 into trunk

This commit is contained in:
Nick Bolton
2011-05-21 00:30:08 +00:00
parent bebf8c2c2c
commit 5a315324ca
39 changed files with 808 additions and 2854 deletions

View File

@@ -16,7 +16,6 @@
*/
#include "CKeyState.h"
#include "IEventQueue.h"
#include "CLog.h"
#include <cstring>
#include <algorithm>
@@ -383,7 +382,31 @@ static const KeyID s_numpadTable[] = {
//
CKeyState::CKeyState() :
m_mask(0)
IKeyState(),
m_mask(0),
m_keyMapPtr(new CKeyMap()),
m_keyMap(*m_keyMapPtr)
{
init();
}
CKeyState::CKeyState(IEventQueue& eventQueue, CKeyMap& keyMap) :
IKeyState(eventQueue),
m_mask(0),
m_keyMapPtr(0),
m_keyMap(keyMap)
{
init();
}
CKeyState::~CKeyState()
{
if (m_keyMapPtr)
delete m_keyMapPtr;
}
void
CKeyState::init()
{
memset(&m_keys, 0, sizeof(m_keys));
memset(&m_syntheticKeys, 0, sizeof(m_syntheticKeys));
@@ -391,11 +414,6 @@ CKeyState::CKeyState() :
memset(&m_serverKeys, 0, sizeof(m_serverKeys));
}
CKeyState::~CKeyState()
{
// do nothing
}
void
CKeyState::onKey(KeyButton button, bool down, KeyModifierMask newState)
{
@@ -431,23 +449,23 @@ CKeyState::sendKeyEvent(
// ignore auto-repeat on half-duplex keys
}
else {
EVENTQUEUE->addEvent(CEvent(getKeyDownEvent(), target,
getEventQueue().addEvent(CEvent(getKeyDownEvent(), target,
CKeyInfo::alloc(key, mask, button, 1)));
EVENTQUEUE->addEvent(CEvent(getKeyUpEvent(), target,
getEventQueue().addEvent(CEvent(getKeyUpEvent(), target,
CKeyInfo::alloc(key, mask, button, 1)));
}
}
else {
if (isAutoRepeat) {
EVENTQUEUE->addEvent(CEvent(getKeyRepeatEvent(), target,
getEventQueue().addEvent(CEvent(getKeyRepeatEvent(), target,
CKeyInfo::alloc(key, mask, button, count)));
}
else if (press) {
EVENTQUEUE->addEvent(CEvent(getKeyDownEvent(), target,
getEventQueue().addEvent(CEvent(getKeyDownEvent(), target,
CKeyInfo::alloc(key, mask, button, 1)));
}
else {
EVENTQUEUE->addEvent(CEvent(getKeyUpEvent(), target,
getEventQueue().addEvent(CEvent(getKeyUpEvent(), target,
CKeyInfo::alloc(key, mask, button, 1)));
}
}