virtualkeyboard: fixed restart crash

This commit is contained in:
Freeman Lou
2014-11-13 17:51:13 +01:00
committed by François Revol
parent 5e0fb24359
commit b8fe0b588d
2 changed files with 4 additions and 3 deletions
@@ -1143,7 +1143,7 @@ void
KeyboardLayoutView::_SendKeyDown(const Key* key) KeyboardLayoutView::_SendKeyDown(const Key* key)
{ {
KID_CALLED(); KID_CALLED();
BMessage* message = new BMessage(B_KEY_DOWN); BMessage* message = new BMessage(B_KEY_DOWN);
message->AddInt64("when", system_time()); message->AddInt64("when", system_time());
message->AddData("states", B_UINT8_TYPE, &fKeyState, message->AddData("states", B_UINT8_TYPE, &fKeyState,
@@ -1171,4 +1171,5 @@ KeyboardLayoutView::_SendKeyDown(const Key* key)
if (fDevice->EnqueueMessage(message) != B_OK) if (fDevice->EnqueueMessage(message) != B_OK)
delete message; delete message;
} }
@@ -15,7 +15,6 @@ instantiate_input_device()
VirtualKeyboardInputDevice::VirtualKeyboardInputDevice() VirtualKeyboardInputDevice::VirtualKeyboardInputDevice()
{ {
fKeyboardWindow = new VirtualKeyboardWindow(this);
} }
@@ -39,6 +38,7 @@ VirtualKeyboardInputDevice::InitCheck()
status_t status_t
VirtualKeyboardInputDevice::Start(const char* name, void* cookie) VirtualKeyboardInputDevice::Start(const char* name, void* cookie)
{ {
fKeyboardWindow = new VirtualKeyboardWindow(this);
fKeyboardWindow->Show(); fKeyboardWindow->Show();
return B_OK; return B_OK;
} }
@@ -47,7 +47,7 @@ VirtualKeyboardInputDevice::Start(const char* name, void* cookie)
status_t status_t
VirtualKeyboardInputDevice::Stop(const char* name, void* cookie) VirtualKeyboardInputDevice::Stop(const char* name, void* cookie)
{ {
if (fKeyboardWindow) { if (fKeyboardWindow->Lock()) {
fKeyboardWindow->Quit(); fKeyboardWindow->Quit();
fKeyboardWindow = NULL; fKeyboardWindow = NULL;
} }