Bug 861332 - Ensure that the drawing rect used for DrawWindowOverlay doesn't depend on the window's position on the screen, so that for example the 10.6 window resizer is drawn in the correct place. r=mattwoodrow

--HG--
extra : rebase_source : d47ea3f871a619bfab065dd0eddb74d8c309fed1
This commit is contained in:
Markus Stange 2013-05-22 11:42:49 +02:00
parent 22eb7c1ef4
commit 67e8c4fec5
3 changed files with 4 additions and 2 deletions

View File

@ -109,7 +109,6 @@ ClientLayerManager::BeginTransactionWithTarget(gfxContext* aTarget)
// don't signal a new transaction to ShadowLayerForwarder. Carry on adding
// to the previous transaction.
ScreenOrientation orientation;
nsIntRect clientBounds;
if (TabChild* window = mWidget->GetOwningTabChild()) {
orientation = window->GetOrientation();
} else {
@ -117,7 +116,9 @@ ClientLayerManager::BeginTransactionWithTarget(gfxContext* aTarget)
hal::GetCurrentScreenConfiguration(&currentConfig);
orientation = currentConfig.orientation();
}
nsIntRect clientBounds;
mWidget->GetClientBounds(clientBounds);
clientBounds.x = clientBounds.y = 0;
ShadowLayerForwarder::BeginTransaction(mTargetBounds, mTargetRotation, clientBounds, orientation);
// If we're drawing on behalf of a context with async pan/zoom

View File

@ -777,7 +777,7 @@ CompositorOGL::BeginFrame(const Rect *aClipRectIn, const gfxMatrix& aTransform,
// sent atomically with rotation changes
nsIntRect intRect;
mWidget->GetClientBounds(intRect);
rect = gfxRect(intRect.x, intRect.y, intRect.width, intRect.height);
rect = gfxRect(0, 0, intRect.width, intRect.height);
}
}

View File

@ -786,6 +786,7 @@ LayerManagerOGL::Render()
// thread, and undoes all the care we take with layers txns being
// sent atomically with rotation changes
mWidget->GetClientBounds(rect);
rect.x = rect.y = 0;
}
}
WorldTransformRect(rect);