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); } /**