integration of the system keymap, loaded when settings one loading fails
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8752 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -164,10 +164,13 @@ InputServer::InitKeyboardMouseStates(void)
|
||||
sMousePos.x = 200;
|
||||
sMousePos.y = 200;
|
||||
|
||||
LoadKeymap();
|
||||
if (LoadKeymap()!=B_OK)
|
||||
LoadSystemKeymap();
|
||||
}
|
||||
|
||||
|
||||
#include "SystemKeymap.cpp"
|
||||
|
||||
status_t
|
||||
InputServer::LoadKeymap()
|
||||
{
|
||||
@@ -208,6 +211,21 @@ InputServer::LoadKeymap()
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
status_t
|
||||
InputServer::LoadSystemKeymap()
|
||||
{
|
||||
if (!fChars)
|
||||
delete[] fChars;
|
||||
fKeys = sSystemKeymap;
|
||||
fCharsSize = sSystemKeyCharsSize;
|
||||
fChars = new char[fCharsSize];
|
||||
memcpy(fChars, sSystemKeyChars, fCharsSize);
|
||||
|
||||
// TODO : save this keymap to file
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Method: InputServer::QuitRequested()
|
||||
* Descr:
|
||||
@@ -654,7 +672,8 @@ InputServer::HandleGetSetKeyMap(BMessage *message,
|
||||
if (status == B_OK)
|
||||
status = reply->AddData("key_buffer", B_ANY_TYPE, fChars, fCharsSize);
|
||||
} else {
|
||||
LoadKeymap();
|
||||
if (LoadKeymap()!=B_OK)
|
||||
LoadSystemKeymap();
|
||||
|
||||
status = ControlDevices(NULL, B_KEYBOARD_DEVICE, B_KEY_MAP_CHANGED, NULL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user