diff options
author | Alexander Larsson <alexl@redhat.com> | 2010-06-09 11:16:48 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2010-06-09 11:16:48 +0200 |
commit | 3e989a361c421ba4980f125f57ed2505d0bf412c (patch) | |
tree | b3d8bcfc3eb106913fa7ea246a134c4114a368a8 | |
parent | b0bb395576b568638c0de10522cbe3aba1623cac (diff) | |
download | spice-3e989a361c421ba4980f125f57ed2505d0bf412c.tar.gz spice-3e989a361c421ba4980f125f57ed2505d0bf412c.tar.xz spice-3e989a361c421ba4980f125f57ed2505d0bf412c.zip |
client: Only invalidate on screen if drawing to the primary surface
-rw-r--r-- | client/display_channel.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/client/display_channel.cpp b/client/display_channel.cpp index abfe636d..5d185171 100644 --- a/client/display_channel.cpp +++ b/client/display_channel.cpp @@ -1534,7 +1534,9 @@ void DisplayChannel::handle_surface_destroy(RedPeer::InMessage* message) PRE_DRAW; \ canvas->draw_##type(*type, message->size()); \ POST_DRAW; \ - invalidate(type->base.box, false); \ + if (type->base.surface_id == 0) { \ + invalidate(type->base.box, false); \ + } \ } void DisplayChannel::handle_copy_bits(RedPeer::InMessage* message) @@ -1545,7 +1547,9 @@ void DisplayChannel::handle_copy_bits(RedPeer::InMessage* message) canvas = surfaces_mngr.get_canvas(copy_bits->base.surface_id); canvas->copy_bits(*copy_bits, message->size()); POST_DRAW; - invalidate(copy_bits->base.box, false); + if (copy_bits->base.surface_id == 0) { + invalidate(copy_bits->base.box, false); + } } void DisplayChannel::handle_draw_fill(RedPeer::InMessage* message) |