Index: mojo/views/native_widget_view_manager.cc |
diff --git a/mojo/views/native_widget_view_manager.cc b/mojo/views/native_widget_view_manager.cc |
index 36a65786e101b21da096aa89b764d0144be3855a..51cc2fa8bdb8eb2d2e64117ff8e6ce7356f01b70 100644 |
--- a/mojo/views/native_widget_view_manager.cc |
+++ b/mojo/views/native_widget_view_manager.cc |
@@ -113,9 +113,11 @@ NativeWidgetViewManager::NativeWidgetViewManager( |
} |
NativeWidgetViewManager::~NativeWidgetViewManager() { |
- if (node_->active_view()) |
- node_->active_view()->RemoveObserver(this); |
- node_->RemoveObserver(this); |
+ if (node_) { |
+ if (node_->active_view()) |
+ node_->active_view()->RemoveObserver(this); |
+ node_->RemoveObserver(this); |
+ } |
} |
void NativeWidgetViewManager::InitNativeWidget( |
@@ -133,9 +135,18 @@ void NativeWidgetViewManager::CompositorContentsChanged( |
} |
void NativeWidgetViewManager::OnNodeDestroyed(view_manager::Node* node) { |
+ DCHECK_EQ(node, node_); |
+ node->RemoveObserver(this); |
sky
2014/07/15 17:47:49
You should remove the observer from the active_vie
hansmuller
2014/07/15 20:07:34
I'll remove the view's observer when the view is d
|
+ node_ = NULL; |
window_tree_host_.reset(); |
} |
+void NativeWidgetViewManager::OnNodeBoundsChanged(view_manager::Node* node, |
+ const gfx::Rect& old_bounds, |
+ const gfx::Rect& new_bounds) { |
+ GetWidget()->SetBounds(gfx::Rect(node->bounds().size())); |
+} |
+ |
void NativeWidgetViewManager::OnNodeActiveViewChanged( |
view_manager::Node* node, |
view_manager::View* old_view, |