XWalk WebView patchset, README and LICENSE files.
[platform/framework/web/xwalk_webview.git] / patchset / 0013-Remove-view-from-the-container-when-rwhv-is-deleted.patch
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
5
6 ---
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(+)
10
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),
17        delegate_(delegate),
18        view_container_box_(0) {
19 +  /*
20 +   * TODO: Connect the evas smart callback signals for size changes to
21 +   * callback functions in this file.
22 +   */
23 +
24 +  /* TODO: do we need a focus store for our EFL widget */
25 +
26 +  // TODO: Initializiation function for delegate that takes an evas_object
27 +  // if (delegate_)
28 +  //    delegate_->Initialize(expanded_.get(), &focus_store_);
29 +  Observe(web_contents);
30  }
31  
32  WebContentsViewEfl::~WebContentsViewEfl() {
33 @@ -140,6 +151,13 @@ void WebContentsViewEfl::SizeContents(const gfx::Size& size) {
34  void WebContentsViewEfl::RenderViewCreated(RenderViewHost* host) {
35  }
36  
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);
41 +  }
42 +}
43 +
44  void WebContentsViewEfl::RenderViewSwappedIn(RenderViewHost* host) {
45    UpdateDragDest(host);
46  }
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
51 @@ -12,6 +12,7 @@
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"
56  
57  #include <Evas.h>
58  
59 @@ -23,6 +24,7 @@ class WebContentsViewDelegate;
60  
61  class CONTENT_EXPORT WebContentsViewEfl
62      : public WebContentsViewPort,
63 +      public WebContentsObserver,
64        public RenderViewHostDelegateView {
65   public:
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;
74  
75 -- 
76 1.8.1.2
77