1 From 3cc152b5d3bc17e87bb41d8f1cb765bf462d3c71 Mon Sep 17 00:00:00 2001
2 From: Alexander Shalamov <alexander.shalamov@intel.com>
3 Date: Wed, 14 Aug 2013 11:02:13 +0300
4 Subject: [PATCH 25/33] Fix key events
7 content/browser/renderer_host/render_widget_host_view_efl.cc | 3 +++
8 ui/gfx/preserve_window_efl.cc | 6 ++++++
9 ui/gfx/preserve_window_efl.h | 1 +
10 3 files changed, 10 insertions(+)
12 diff --git a/content/browser/renderer_host/render_widget_host_view_efl.cc b/content/browser/renderer_host/render_widget_host_view_efl.cc
13 index e9f3ec9..0ee06af 100644
14 --- a/content/browser/renderer_host/render_widget_host_view_efl.cc
15 +++ b/content/browser/renderer_host/render_widget_host_view_efl.cc
16 @@ -104,6 +104,7 @@ RenderWidgetHostViewEfl::~RenderWidgetHostViewEfl() {
18 void RenderWidgetHostViewEfl::PreserveWindowMouseDown(Evas_Event_Mouse_Down* mouse_down) {
19 // The coordinates must be relative to the view, not the root window.
20 + PreserveWindowFocusIn();
22 evas_object_geometry_get(preserve_window_->SmartObject(),
23 &view_x, &view_y, NULL, NULL);
24 @@ -155,12 +156,14 @@ void RenderWidgetHostViewEfl::PreserveWindowFocusIn() {
27 host_->SetActive(true);
28 + preserve_window_->SetFocus(true);
31 void RenderWidgetHostViewEfl::PreserveWindowFocusOut() {
32 if (host_ && !IsShowingContextMenu()) {
33 host_->SetActive(false);
35 + preserve_window_->SetFocus(false);
39 diff --git a/ui/gfx/preserve_window_efl.cc b/ui/gfx/preserve_window_efl.cc
40 index 6c901a7..2d783e3 100644
41 --- a/ui/gfx/preserve_window_efl.cc
42 +++ b/ui/gfx/preserve_window_efl.cc
43 @@ -298,6 +298,12 @@ PreserveWindow::~PreserveWindow() {
44 evas_object_del(smart_object_);
47 +void PreserveWindow::SetFocus(bool focus)
49 + PreserveWindowData* smart_data = ToSmartData(smart_object_);
50 + evas_object_focus_set(smart_data->background, focus);
53 gfx::PluginWindowHandle PreserveWindow::EmbeddedXWindow() {
54 PreserveWindowData* smart_data = ToSmartData(smart_object_);
55 return smart_data->window;
56 diff --git a/ui/gfx/preserve_window_efl.h b/ui/gfx/preserve_window_efl.h
57 index 6cb48ba..e22f508 100644
58 --- a/ui/gfx/preserve_window_efl.h
59 +++ b/ui/gfx/preserve_window_efl.h
60 @@ -23,6 +23,7 @@ class UI_EXPORT PreserveWindow {
62 Evas_Object* SmartObject() const { return smart_object_; }
63 PluginWindowHandle EmbeddedXWindow();
64 + void SetFocus(bool focus);
66 static void InitSmartClassInterface(Evas_Smart_Class* smart_class);