Implemented Enable/DisableUpdates again on the app_server side. Untested. It
should prevent the app_server to send any update messages to the client. It should just keep adding to the pending update sessions region until the client enabled updates again. If anything is already in the pending session, an update request will be send immediately. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24029 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -705,16 +705,14 @@ ServerWindow::_DispatchMessage(int32 code, BPrivate::LinkReceiver &link)
|
|||||||
{
|
{
|
||||||
STRACE(("ServerWindow %s: Message AS_ENABLE_UPDATES unimplemented\n",
|
STRACE(("ServerWindow %s: Message AS_ENABLE_UPDATES unimplemented\n",
|
||||||
Title()));
|
Title()));
|
||||||
// TODO: AS_ENABLE_UPDATES
|
fWindowLayer->EnableUpdateRequests();
|
||||||
//fWindowLayer->EnableUpdateRequests();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_DISABLE_UPDATES:
|
case AS_DISABLE_UPDATES:
|
||||||
{
|
{
|
||||||
STRACE(("ServerWindow %s: Message AS_DISABLE_UPDATES unimplemented\n",
|
STRACE(("ServerWindow %s: Message AS_DISABLE_UPDATES unimplemented\n",
|
||||||
Title()));
|
Title()));
|
||||||
// TODO: AS_DISABLE_UPDATES
|
fWindowLayer->DisableUpdateRequests();
|
||||||
//fWindowLayer->DisableUpdateRequests();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case AS_NEEDS_UPDATE:
|
case AS_NEEDS_UPDATE:
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ WindowLayer::WindowLayer(const BRect& frame, const char *name,
|
|||||||
fPendingUpdateSession(&fUpdateSessions[1]),
|
fPendingUpdateSession(&fUpdateSessions[1]),
|
||||||
fUpdateRequested(false),
|
fUpdateRequested(false),
|
||||||
fInUpdate(false),
|
fInUpdate(false),
|
||||||
|
fUpdatesEnabled(true),
|
||||||
|
|
||||||
// windows start hidden
|
// windows start hidden
|
||||||
fHidden(true),
|
fHidden(true),
|
||||||
@@ -701,18 +702,23 @@ WindowLayer::InvalidateView(ViewLayer* layer, BRegion& layerRegion)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DisableUpdateRequests
|
||||||
|
void
|
||||||
|
WindowLayer::DisableUpdateRequests()
|
||||||
|
{
|
||||||
|
fUpdatesEnabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// EnableUpdateRequests
|
// EnableUpdateRequests
|
||||||
void
|
void
|
||||||
WindowLayer::EnableUpdateRequests()
|
WindowLayer::EnableUpdateRequests()
|
||||||
{
|
{
|
||||||
// fUpdateRequestsEnabled = true;
|
fUpdatesEnabled = true;
|
||||||
/* if (fCumulativeRegion.CountRects() > 0) {
|
if (!fUpdateRequested && fPendingUpdateSession->IsUsed())
|
||||||
GetRootLayer()->MarkForRedraw(fCumulativeRegion);
|
_SendUpdateMessage();
|
||||||
GetRootLayer()->TriggerRedraw();
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark -
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
@@ -1814,6 +1820,9 @@ WindowLayer::_TransferToUpdateSession(BRegion* contentDirtyRegion)
|
|||||||
void
|
void
|
||||||
WindowLayer::_SendUpdateMessage()
|
WindowLayer::_SendUpdateMessage()
|
||||||
{
|
{
|
||||||
|
if (!fUpdatesEnabled)
|
||||||
|
return;
|
||||||
|
|
||||||
BMessage message(_UPDATE_);
|
BMessage message(_UPDATE_);
|
||||||
ServerWindow()->SendMessageToClient(&message);
|
ServerWindow()->SendMessageToClient(&message);
|
||||||
|
|
||||||
|
|||||||
@@ -104,8 +104,8 @@ class WindowLayer {
|
|||||||
// shortcut for invalidating just one view
|
// shortcut for invalidating just one view
|
||||||
void InvalidateView(ViewLayer* view, BRegion& layerRegion);
|
void InvalidateView(ViewLayer* view, BRegion& layerRegion);
|
||||||
|
|
||||||
void EnableUpdateRequests();
|
|
||||||
void DisableUpdateRequests();
|
void DisableUpdateRequests();
|
||||||
|
void EnableUpdateRequests();
|
||||||
|
|
||||||
void BeginUpdate(BPrivate::PortLink& link);
|
void BeginUpdate(BPrivate::PortLink& link);
|
||||||
void EndUpdate();
|
void EndUpdate();
|
||||||
@@ -335,6 +335,7 @@ class WindowLayer {
|
|||||||
// and consistent update session
|
// and consistent update session
|
||||||
bool fUpdateRequested : 1;
|
bool fUpdateRequested : 1;
|
||||||
bool fInUpdate : 1;
|
bool fInUpdate : 1;
|
||||||
|
bool fUpdatesEnabled : 1;
|
||||||
|
|
||||||
bool fHidden : 1;
|
bool fHidden : 1;
|
||||||
bool fMinimized : 1;
|
bool fMinimized : 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user