From 41c7e3f7dce6f1c7f47b83eb3826199c4fc72940 Mon Sep 17 00:00:00 2001 From: Gregory Terzian Date: Sat, 28 Jan 2017 16:19:57 +0800 Subject: [PATCH 1/2] set self.current_scroll_layer_id to None, if no matching layer exists anymore --- webrender/src/scroll_tree.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/webrender/src/scroll_tree.rs b/webrender/src/scroll_tree.rs index 909febaa9f..b067f12eac 100644 --- a/webrender/src/scroll_tree.rs +++ b/webrender/src/scroll_tree.rs @@ -194,7 +194,16 @@ impl ScrollTree { self.current_scroll_layer_id = Some(scroll_layer_id); scroll_layer_id }, - (_, _, Some(scroll_layer_id)) => scroll_layer_id, + (_, scroll_layer_id, Some(cached_scroll_layer_id)) => { + let scroll_layer_id = match self.layers.get(&cached_scroll_layer_id) { + Some(_) => cached_scroll_layer_id, + None => { + self.current_scroll_layer_id = Some(scroll_layer_id); + scroll_layer_id + }, + }; + scroll_layer_id + }, (_, _, None) => return false, }; From 4a5403cd78c9bca86bf8ec2c71ee1aa3b017a878 Mon Sep 17 00:00:00 2001 From: Gregory Terzian Date: Mon, 30 Jan 2017 16:12:19 +0800 Subject: [PATCH 2/2] clearer variable names --- webrender/src/scroll_tree.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/webrender/src/scroll_tree.rs b/webrender/src/scroll_tree.rs index b067f12eac..792f6fb1f2 100644 --- a/webrender/src/scroll_tree.rs +++ b/webrender/src/scroll_tree.rs @@ -190,16 +190,16 @@ impl ScrollTree { phase, self.find_scrolling_layer_at_point(&cursor), self.current_scroll_layer_id) { - (ScrollEventPhase::Start, scroll_layer_id, _) => { - self.current_scroll_layer_id = Some(scroll_layer_id); - scroll_layer_id + (ScrollEventPhase::Start, scroll_layer_at_point_id, _) => { + self.current_scroll_layer_id = Some(scroll_layer_at_point_id); + scroll_layer_at_point_id }, - (_, scroll_layer_id, Some(cached_scroll_layer_id)) => { + (_, scroll_layer_at_point_id, Some(cached_scroll_layer_id)) => { let scroll_layer_id = match self.layers.get(&cached_scroll_layer_id) { Some(_) => cached_scroll_layer_id, None => { - self.current_scroll_layer_id = Some(scroll_layer_id); - scroll_layer_id + self.current_scroll_layer_id = Some(scroll_layer_at_point_id); + scroll_layer_at_point_id }, }; scroll_layer_id