summaryrefslogtreecommitdiffstats
path: root/client/display_channel.cpp
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2010-06-09 11:16:48 +0200
committerAlexander Larsson <alexl@redhat.com>2010-06-09 11:16:48 +0200
commit3e989a361c421ba4980f125f57ed2505d0bf412c (patch)
treeb3d8bcfc3eb106913fa7ea246a134c4114a368a8 /client/display_channel.cpp
parentb0bb395576b568638c0de10522cbe3aba1623cac (diff)
downloadspice-3e989a361c421ba4980f125f57ed2505d0bf412c.tar.gz
spice-3e989a361c421ba4980f125f57ed2505d0bf412c.tar.xz
spice-3e989a361c421ba4980f125f57ed2505d0bf412c.zip
client: Only invalidate on screen if drawing to the primary surface
Diffstat (limited to 'client/display_channel.cpp')
-rw-r--r--client/display_channel.cpp8
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)