forked from pool/xorg-x11-server
31 lines
776 B
Diff
31 lines
776 B
Diff
diff --git a/exa/exa_migration.c b/exa/exa_migration.c
|
|
index 3c79f68..1332f42 100644
|
|
--- a/exa/exa_migration.c
|
|
+++ b/exa/exa_migration.c
|
|
@@ -468,7 +503,11 @@ exaMigrateTowardFb (ExaMigrationPtr migrate)
|
|
exaDoMoveInPixmap(migrate);
|
|
}
|
|
|
|
- ExaOffscreenMarkUsed (pPixmap);
|
|
+ if (exaPixmapIsOffscreen(pPixmap)) {
|
|
+ exaCopyDirtyToFb (migrate);
|
|
+ ExaOffscreenMarkUsed (pPixmap);
|
|
+ } else
|
|
+ exaCopyDirtyToSys (migrate);
|
|
}
|
|
|
|
/**
|
|
@@ -501,6 +540,12 @@ exaMigrateTowardSys (ExaMigrationPtr migrate)
|
|
|
|
if (pExaPixmap->score <= EXA_PIXMAP_SCORE_MOVE_OUT && pExaPixmap->area)
|
|
exaDoMoveOutPixmap(migrate);
|
|
+
|
|
+ if (exaPixmapIsOffscreen(pPixmap)) {
|
|
+ exaCopyDirtyToFb (migrate);
|
|
+ ExaOffscreenMarkUsed (pPixmap);
|
|
+ } else
|
|
+ exaCopyDirtyToSys (migrate);
|
|
}
|
|
|
|
/**
|