This may be a quick and dirty fix to the problems we've been having with the update code. However this requires something from DisplayDriver. I'll write about this in a moment on app_server list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12165 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1408,7 +1408,9 @@ void ServerWindow::DispatchMessage(int32 code, LinkMsgReader &link)
|
||||
case AS_BEGIN_UPDATE:
|
||||
{
|
||||
DTRACE(("ServerWindowo %s: AS_BEGIN_UPDATE\n",fTitle.String()));
|
||||
fWinBorder->GetRootLayer()->Lock();
|
||||
cl->UpdateStart();
|
||||
fWinBorder->GetRootLayer()->Unlock();
|
||||
break;
|
||||
}
|
||||
case AS_END_UPDATE:
|
||||
@@ -1636,10 +1638,23 @@ void ServerWindow::DispatchMessage(int32 code, LinkMsgReader &link)
|
||||
STRACE(("ServerWindow %s: Message Zoom unimplemented\n",fTitle.String()));
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
DispatchGraphicsMessage(code, link);
|
||||
}
|
||||
}
|
||||
}
|
||||
// -------------------- Graphics messages ----------------------------------
|
||||
|
||||
|
||||
void ServerWindow::DispatchGraphicsMessage(int32 code, LinkMsgReader &link)
|
||||
{
|
||||
fWinBorder->GetRootLayer()->Lock();
|
||||
BRegion rreg(cl->fVisible);
|
||||
rreg.Include(&fWinBorder->zUpdateReg);
|
||||
|
||||
desktop->GetDisplayDriver()->ConstrainClippingRegion(&rreg);
|
||||
|
||||
switch (code)
|
||||
{
|
||||
case AS_LAYER_SET_HIGH_COLOR:
|
||||
{
|
||||
DTRACE(("ServerWindow %s: Message AS_LAYER_SET_HIGH_COLOR: Layer: %s\n",fTitle.String(), cl->fName->String()));
|
||||
@@ -2222,6 +2237,9 @@ void ServerWindow::DispatchMessage(int32 code, LinkMsgReader &link)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
desktop->GetDisplayDriver()->ConstrainClippingRegion(NULL);
|
||||
fWinBorder->GetRootLayer()->Unlock();
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
/*!
|
||||
|
||||
Reference in New Issue
Block a user