xorg-x11-server/exa-greedy.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);
}
/**