diff --git a/src/apps/debugger/user_interface/gui/team_window/VariablesView.cpp b/src/apps/debugger/user_interface/gui/team_window/VariablesView.cpp index 19e53b78a7..9cbbadcc42 100644 --- a/src/apps/debugger/user_interface/gui/team_window/VariablesView.cpp +++ b/src/apps/debugger/user_interface/gui/team_window/VariablesView.cpp @@ -961,8 +961,8 @@ VariablesView::VariableTableModel::ValueNodeChanged(ValueNodeChild* nodeChild, if (oldNode != NULL) { ValueNodeChildrenDeleted(oldNode); - ValueNodeChildrenCreated(newNode); - fContainerListener->ModelNodeValueRequested(modelNode); + newNode->CreateChildren(); + NotifyNodeChanged(modelNode); } } @@ -1026,6 +1026,11 @@ VariablesView::VariableTableModel::ValueNodeChildrenDeleted(ValueNode* node) for (int32 i = 0; i < modelNode->CountChildren(); i++) { BReference childNode = modelNode->ChildAt(i); + TreeTablePath treePath; + if (GetTreePath(childNode, treePath)) { + int32 index = treePath.RemoveLastComponent(); + NotifyNodesRemoved(treePath, index, 1); + } modelNode->RemoveChild(childNode); fNodeTable.Remove(childNode); } @@ -1641,29 +1646,25 @@ VariablesView::MessageReceived(BMessage* message) { ModelNode* node = NULL; if (message->FindPointer("node", reinterpret_cast(&node)) != B_OK) - return; + break; TeamDebugInfo* info = fThread->GetTeam()->DebugInfo(); if (info == NULL) - return; + break; Type* type = NULL; if (info->LookupTypeByName(message->FindString("text"), TypeLookupConstraints(), type) != B_OK) { // TODO: notify user - return; + break; } ValueNode* valueNode = NULL; if (TypeHandlerRoster::Default()->CreateValueNode( node->NodeChild(), type, valueNode) != B_OK) { - return; + break; } - ValueNode* previousNode = node->NodeChild()->Node(); - BReference nodeRef(previousNode); node->NodeChild()->SetNode(valueNode); - fVariableTableModel->ValueNodeChanged(node->NodeChild(), - previousNode, valueNode ); break; } case MSG_VALUE_NODE_CHANGED: diff --git a/src/kits/shared/PromptWindow.cpp b/src/kits/shared/PromptWindow.cpp index 71bb0e9efc..33a36c7d0d 100644 --- a/src/kits/shared/PromptWindow.cpp +++ b/src/kits/shared/PromptWindow.cpp @@ -38,6 +38,7 @@ PromptWindow::PromptWindow(const char* title, const char* label, fTextControl->SetTarget(this); acceptButton->SetTarget(this); cancelButton->SetTarget(this); + fTextControl->MakeFocus(true); } @@ -70,12 +71,15 @@ PromptWindow::MessageReceived(BMessage* message) status_t PromptWindow::SetTarget(BMessenger messenger) { - return fTextControl->SetTarget(messenger); + fTarget = messenger; + return B_OK; } status_t PromptWindow::SetMessage(BMessage* message) { - return fTextControl->SetMessage(message); + delete fMessage; + fMessage = message; + return B_OK; }