1 From a18be822f69e47b681cbc4760f7263bc64b46790 Mon Sep 17 00:00:00 2001
2 From: Alexander Shalamov <alexander.shalamov@intel.com>
3 Date: Thu, 1 Aug 2013 16:09:21 +0300
4 Subject: [PATCH 13/33] Remove view from the container when rwhv is deleted
7 content/browser/web_contents/web_contents_view_efl.cc | 18 ++++++++++++++++++
8 content/browser/web_contents/web_contents_view_efl.h | 3 +++
9 2 files changed, 21 insertions(+)
11 diff --git a/content/browser/web_contents/web_contents_view_efl.cc b/content/browser/web_contents/web_contents_view_efl.cc
12 index 3885d0b..6e22d05 100644
13 --- a/content/browser/web_contents/web_contents_view_efl.cc
14 +++ b/content/browser/web_contents/web_contents_view_efl.cc
15 @@ -42,6 +42,17 @@ WebContentsViewEfl::WebContentsViewEfl(
16 : web_contents_(web_contents),
18 view_container_box_(0) {
20 + * TODO: Connect the evas smart callback signals for size changes to
21 + * callback functions in this file.
24 + /* TODO: do we need a focus store for our EFL widget */
26 + // TODO: Initializiation function for delegate that takes an evas_object
28 + // delegate_->Initialize(expanded_.get(), &focus_store_);
29 + Observe(web_contents);
32 WebContentsViewEfl::~WebContentsViewEfl() {
33 @@ -140,6 +151,13 @@ void WebContentsViewEfl::SizeContents(const gfx::Size& size) {
34 void WebContentsViewEfl::RenderViewCreated(RenderViewHost* host) {
37 +void WebContentsViewEfl::RenderViewDeleted(RenderViewHost* render_view_host) {
38 + if (view_container_box_ && render_view_host->GetView()) {
39 + gfx::NativeView native_view = render_view_host->GetView()->GetNativeView();
40 + evas_object_box_remove(view_container_box_, native_view);
44 void WebContentsViewEfl::RenderViewSwappedIn(RenderViewHost* host) {
47 diff --git a/content/browser/web_contents/web_contents_view_efl.h b/content/browser/web_contents/web_contents_view_efl.h
48 index e481009..91aab48 100644
49 --- a/content/browser/web_contents/web_contents_view_efl.h
50 +++ b/content/browser/web_contents/web_contents_view_efl.h
52 #include "content/common/drag_event_source_info.h"
53 #include "content/port/browser/render_view_host_delegate_view.h"
54 #include "content/port/browser/web_contents_view_port.h"
55 +#include "content/public/browser/web_contents_observer.h"
59 @@ -23,6 +24,7 @@ class WebContentsViewDelegate;
61 class CONTENT_EXPORT WebContentsViewEfl
62 : public WebContentsViewPort,
63 + public WebContentsObserver,
64 public RenderViewHostDelegateView {
66 WebContentsViewEfl(WebContentsImpl* web_contents,
67 @@ -57,6 +59,7 @@ class CONTENT_EXPORT WebContentsViewEfl
68 RenderWidgetHost* render_widget_host) OVERRIDE;
69 virtual void SetPageTitle(const string16& title) OVERRIDE;
70 virtual void RenderViewCreated(RenderViewHost* host) OVERRIDE;
71 + virtual void RenderViewDeleted(RenderViewHost* render_view_host) OVERRIDE;
72 virtual void RenderViewSwappedIn(RenderViewHost* host) OVERRIDE;
73 virtual void SetOverscrollControllerEnabled(bool enabled) OVERRIDE;