am 05cec9d1
: improve resize transactions
* commit '05cec9d1275fd939c2d1aec235dca2bdb8edef63': improve resize transactions
This commit is contained in:
commit
f67148eccd
@ -428,8 +428,8 @@ uint32_t Layer::doTransaction(uint32_t flags)
|
||||
const Layer::State& front(drawingState());
|
||||
const Layer::State& temp(currentState());
|
||||
|
||||
const bool sizeChanged = (front.requested.w != temp.requested.w) ||
|
||||
(front.requested.h != temp.requested.h);
|
||||
const bool sizeChanged = (temp.requested.w != front.active.w) ||
|
||||
(temp.requested.h != front.active.h);
|
||||
|
||||
if (sizeChanged) {
|
||||
// the size changed, we need to ask our client to request a new buffer
|
||||
@ -472,8 +472,7 @@ uint32_t Layer::doTransaction(uint32_t flags)
|
||||
if (!isFixedSize()) {
|
||||
// this will make sure LayerBase::doTransaction doesn't update
|
||||
// the drawing state's geometry
|
||||
Layer::State& editDraw(mDrawingState);
|
||||
editDraw.requested = temp.requested;
|
||||
flags |= eDontUpdateGeometryState;
|
||||
}
|
||||
|
||||
// record the new size, form this point on, when the client request
|
||||
|
@ -201,12 +201,14 @@ uint32_t LayerBase::doTransaction(uint32_t flags)
|
||||
const Layer::State& front(drawingState());
|
||||
const Layer::State& temp(currentState());
|
||||
|
||||
if (front.requested != temp.requested) {
|
||||
// geometry of the layer has changed, set the active geometry
|
||||
// to the requested geometry.
|
||||
// always set active to requested, unless we're asked not to
|
||||
// this is used by Layer, which special cases resizes.
|
||||
if (flags & eDontUpdateGeometryState) {
|
||||
} else {
|
||||
Layer::State& editTemp(currentState());
|
||||
editTemp.active = temp.requested;
|
||||
}
|
||||
|
||||
if (front.active != temp.active) {
|
||||
// invalidate and recompute the visible regions if needed
|
||||
flags |= Layer::eVisibleRegion;
|
||||
|
@ -227,7 +227,8 @@ public:
|
||||
|
||||
|
||||
enum { // flags for doTransaction()
|
||||
eVisibleRegion = 0x00000002,
|
||||
eDontUpdateGeometryState = 0x00000001,
|
||||
eVisibleRegion = 0x00000002,
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user