summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2013-01-08 10:51:26 -0500
committerYonit Halperin <yhalperi@redhat.com>2013-01-08 10:51:26 -0500
commit4eb172f6fe9dffe2f3f3045189e84375e54c6cad (patch)
tree556c51cd6fcc51953cb5cb8cecd27d9298a64dc9 /server
parentb22e82ad578c835996e184cefe5a26a70378714a (diff)
downloadspice-4eb172f6fe9dffe2f3f3045189e84375e54c6cad.tar.gz
spice-4eb172f6fe9dffe2f3f3045189e84375e54c6cad.tar.xz
spice-4eb172f6fe9dffe2f3f3045189e84375e54c6cad.zip
red_worker.c: clearing the stream vis_region, after it has been detached
The stream vis_region should be cleared after the stream region was sent to the client losslessly. Otherwise, we might send redundant stream upgrades if we process more drawables that are dependent on the stream region.
Diffstat (limited to 'server')
-rw-r--r--server/red_worker.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index 5e00cb68..085e3e6b 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -2646,7 +2646,7 @@ static inline void red_display_detach_stream_gracefully(DisplayChannelClient *dc
spice_debug("stream %d: upgrade by linked drawable. sized %d, box ==>",
stream_id, stream->current->sized_stream != NULL);
rect_debug(&stream->current->red_drawable->bbox);
- return;
+ goto clear_vis_region;
}
spice_debug("stream %d: upgrade by drawable. sized %d, box ==>",
stream_id, stream->current->sized_stream != NULL);
@@ -2680,7 +2680,8 @@ static inline void red_display_detach_stream_gracefully(DisplayChannelClient *dc
}
red_add_surface_area_image(dcc, 0, &upgrade_area, NULL, FALSE);
}
-
+clear_vis_region:
+ region_clear(&agent->vis_region);
}
static inline void red_detach_stream_gracefully(RedWorker *worker, Stream *stream,