aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2017-01-24 22:21:07 +0100
committerEmilio Cobos Álvarez <emilio@crisal.io>2017-01-24 22:21:07 +0100
commit1b2d932cfb6b23a329c30c72c29d3bb1f17f8c2d (patch)
tree40d2bcbd1a68bd6e1dea118be2fa49b8cb051ee4
parent4639940dfe82a542058250e27be7b920a75afc25 (diff)
downloadservo-1b2d932cfb6b23a329c30c72c29d3bb1f17f8c2d.tar.gz
servo-1b2d932cfb6b23a329c30c72c29d3bb1f17f8c2d.zip
Revert "Revert "constellation: Cleanup the frame size handler.""
This reverts commit 58e8ae8607424ec227f813b765fe72b01a4669e0.
-rw-r--r--components/constellation/constellation.rs33
1 files changed, 18 insertions, 15 deletions
diff --git a/components/constellation/constellation.rs b/components/constellation/constellation.rs
index 2cb9082e31a..132bf40e1ac 100644
--- a/components/constellation/constellation.rs
+++ b/components/constellation/constellation.rs
@@ -1329,23 +1329,26 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
fn handle_frame_size_msg(&mut self,
iframe_sizes: Vec<(PipelineId, TypedSize2D<f32, PagePx>)>) {
for (pipeline_id, size) in iframe_sizes {
- let result = match self.pipelines.get_mut(&pipeline_id) {
- Some(pipeline) => {
- if pipeline.size != Some(size) {
- pipeline.size = Some(size);
- let msg = ConstellationControlMsg::Resize(pipeline_id, WindowSizeData {
- visible_viewport: size,
- initial_viewport: size * ScaleFactor::new(1.0),
- device_pixel_ratio: self.window_size.device_pixel_ratio,
- }, WindowSizeType::Initial);
- Some(pipeline.event_loop.send(msg))
- } else {
- None
- }
+ let result = {
+ let pipeline = match self.pipelines.get_mut(&pipeline_id) {
+ Some(pipeline) => pipeline,
+ None => continue,
+ };
+
+ if pipeline.size == Some(size) {
+ continue;
}
- None => None
+
+ pipeline.size = Some(size);
+ let msg = ConstellationControlMsg::Resize(pipeline_id, WindowSizeData {
+ visible_viewport: size,
+ initial_viewport: size * ScaleFactor::new(1.0),
+ device_pixel_ratio: self.window_size.device_pixel_ratio,
+ }, WindowSizeType::Initial);
+
+ pipeline.event_loop.send(msg)
};
- if let Some(Err(e)) = result {
+ if let Err(e) = result {
self.handle_send_error(pipeline_id, e);
}
}