Hi Fredrik, wow, that's been a lot of work! Thanks! I am going to apply and commit your patch. Just a few comments for the future: Occasionally, you write this: if (fObjectView) fObjectView->DirectConnected( info ); fObjectView->EnableDirectMode( true ); Should be: if (fObjectView) fObjectView->DirectConnected(info); fObjectView->EnableDirectMode(true); Most of the times you did this, but sometimes, you would have no space behind a comma (probably leftover from the old code, but I mention it anyways): msg.ReplaceInt32("color",lightGreen); sm->AddItem(item = new BMenuItem("Green",new BMessage(msg))); item->SetTarget(fObjectView); Should be: msg.ReplaceInt32("color", lightGreen); sm->AddItem(item = new BMenuItem("Green", new BMessage(msg))); item->SetTarget(fObjectView); And there should be spaces between operators: float f = mb->Bounds().IntegerHeight()+1; SetSizeLimits(32,1024,32+f,1024+f); Should be: float f = mb->Bounds().IntegerHeight() + 1; SetSizeLimits(32, 1024, 32 + f, 1024 + f); (The naming should be fixed too, but I know that is leftover from the old code, and I am happy it has improved much already with your patch.) Thanks a lot again! Best regards, -Stephan