// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "browser/renderer_host/im_context_efl.h"
+#include "content/browser/renderer_host/im_context_efl.h"
#include "base/logging.h"
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
-#include "browser/renderer_host/render_widget_host_view_efl.h"
+#include "content/browser/renderer_host/render_widget_host_view_efl.h"
#include <Ecore_Evas.h>
#include <Ecore_IMF_Evas.h>
void IMContextEfl::CancelComposition() {
IM_CTX_LOG;
ClearQueues();
+#if defined(EWK_REFACTOR)
view_->ClearQueues();
+#endif
ResetIMFContext();
if (composition_.text.length() > 0) {
downEvent.key = str.c_str();
downEvent.string = str.c_str();
- NativeWebKeyboardEvent n_event = WebEventFactoryEfl::toWebKeyboardEvent(view_->evas(), &downEvent);
- n_event.type = blink::WebInputEvent::KeyDown;
-
+ NativeWebKeyboardEvent n_event = MakeWebKeyboardEvent(true, &downEvent);
n_event.isSystemKey = true;
if (!view_->GetRenderWidgetHost())
return;
-
+#if defined(EWK_REFACTOR)
view_->KeyUpEventQueuePush(n_event.windowsKeyCode);
+#endif
view_->GetRenderWidgetHost()->ForwardKeyboardEvent(n_event);
}
void IMContextEfl::OnInputPanelStateChanged(int state) {
if (state == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
IM_CTX_LOG << ": show";
- view_->eweb_view()->SmartCallback<EWebViewCallbacks::IMEInputPanelShow>().call();
- view_->eweb_view()->ScrollFocusedEditableNode();
-
+ if (view_->smart_parent())
+ evas_object_smart_callback_call(view_->smart_parent(),
+ "editorclient,ime,opened", 0);
+ view_->ScrollFocusedEditableNode();
} else if (state == ECORE_IMF_INPUT_PANEL_STATE_HIDE) {
IM_CTX_LOG << ": hide";
- view_->eweb_view()->SmartCallback<EWebViewCallbacks::IMEInputPanelHide>().call();
+ if (view_->smart_parent())
+ evas_object_smart_callback_call(view_->smart_parent(),
+ "editorclient,ime,closed", 0);
}
// ignore ECORE_IMF_INPUT_PANEL_WILL_SHOW value
void IMContextEfl::OnInputPanelGeometryChanged() {
Eina_Rectangle rect;
ecore_imf_context_input_panel_geometry_get(context_, &rect.x, &rect.y, &rect.w, &rect.h);
- view_->eweb_view()->SmartCallback<EWebViewCallbacks::IMEInputMethodChanged>().call(&rect);
-
+ if (view_->smart_parent())
+ evas_object_smart_callback_call(view_->smart_parent(),
+ "inputmethod,changed", static_cast<void*>(&rect));
// Scroll to focused editable node if virtual keyboard
// changed geometry
if (rect.w > 0 || rect.h > 0)
- view_->eweb_view()->ScrollFocusedEditableNode();
-
+ view_->ScrollFocusedEditableNode();
SetIMERect(gfx::Rect(rect.x, rect.y, rect.w, rect.h));
}
void IMContextEfl::OnCandidateInputPanelStateChanged(int state) {
- if (state == ECORE_IMF_CANDIDATE_PANEL_SHOW)
- view_->eweb_view()->SmartCallback<EWebViewCallbacks::IMECandidatePanelShow>().call();
- else
- view_->eweb_view()->SmartCallback<EWebViewCallbacks::IMECandidatePanelHide>().call();
+ if (state == ECORE_IMF_CANDIDATE_PANEL_SHOW) {
+ if (view_->smart_parent())
+ evas_object_smart_callback_call(view_->smart_parent(),
+ "editorclient,candidate,opened", 0);
+ }
+ else {
+ if (view_->smart_parent())
+ evas_object_smart_callback_call(view_->smart_parent(),
+ "editorclient,candidate,closed", 0);
+ }
}
void IMContextEfl::OnCandidateInputPanelGeometryChanged() {
#include "content/browser/gpu/compositor_util.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
#include "content/browser/renderer_host/ui_events_helper.h"
+#include "content/browser/renderer_host/im_context_efl.h"
#include "content/browser/renderer_host/edge_effect.h"
#include "content/browser/renderer_host/event_with_latency_info.h"
#include "content/browser/renderer_host/disambiguation_popup_efl.h"
: host_(RenderWidgetHostImpl::From(widget)),
evas_(NULL),
parent_view_(NULL),
+ smart_parent_(NULL),
content_image_(NULL),
content_image_elm_host_(NULL),
evas_gl_initialized_(false),
if (smart_parent) {
// If our parent is a member of some smart object we also want
// to join that group.
+ smart_parent_ = smart_parent;
evas_object_smart_member_add(content_image_elm_host_, smart_parent);
}
evas_object_event_callback_add(content_image_, EVAS_CALLBACK_KEY_UP,
OnKeyUp, this);
-#if 0
// IMContext calls evas() getter on 'this' so it needs to be
// initialized after evas_ is valid
im_context_ = IMContextEfl::Create(this);
-#endif
edge_effect_.reset(new EdgeEffect(content_image_elm_host_));
}
RenderWidgetHostViewEfl::~RenderWidgetHostViewEfl() {
-#if 0
if (im_context_)
delete im_context_;
-#endif
+
evas_object_event_callback_del(parent_view_, EVAS_CALLBACK_RESIZE,
OnParentViewResize);
evas_object_event_callback_del(content_image_, EVAS_CALLBACK_FOCUS_IN,
ui::TextInputMode input_mode,
bool can_compose_inline,
int flags) {
-#if 0
+#if defined(EWK_REFACTOR)
if (GetSelectionController()) {
GetSelectionController()->SetSelectionEditable(
type != ui::TEXT_INPUT_TYPE_NONE);
void RenderWidgetHostViewEfl::OnTextInputStateChanged(
const ViewHostMsg_TextInputState_Params& params) {
-#if 0
- if (!params.show_ime_if_needed && !eweb_view()->GetSettings()->useKeyPadWithoutUserAction())
+ if (!params.show_ime_if_needed
+#if defined(EWK_REFACTOR)
+ && !eweb_view()->GetSettings()->useKeyPadWithoutUserAction()
+#endif
+ )
return;
if (im_context_) {
// is turned on
host_->ScrollFocusedEditableNodeIntoRect(gfx::Rect(0, 0, 0, 0));
}
-
+#if defined(EWK_REFACTOR)
if (GetSelectionController()) {
GetSelectionController()->SetSelectionEditable(
params.type != ui::TEXT_INPUT_TYPE_NONE);
}
void RenderWidgetHostViewEfl::ImeCancelComposition() {
-#if 0
if (im_context_)
im_context_->CancelComposition();
-#endif
}
void RenderWidgetHostViewEfl::ImeCompositionRangeChanged(
const gfx::Range& range,
const std::vector<gfx::Rect>& character_bounds) {
NOTIMPLEMENTED();
-#if 0
+#if defined(EWK_REFACTOR)
if (web_view_) {
SelectionControllerEfl* controller = web_view_->GetSelectionController();
if (controller) {
}
void RenderWidgetHostViewEfl::FocusedNodeChanged(bool is_editable_node) {
-#if 0
+#if defined(EWK_REFACTOR)
if (web_view_) {
SelectionControllerEfl* controller = web_view_->GetSelectionController();
if (controller) {
void RenderWidgetHostViewEfl::SelectionChanged(const base::string16& text,
size_t offset,
const gfx::Range& range) {
- NOTIMPLEMENTED();
-#if 0
RenderWidgetHostViewBase::SelectionChanged(text, offset, range);
-
+#if defined(EWK_REFACTOR)
if (!web_view_)
return;
void RenderWidgetHostViewEfl::SelectionBoundsChanged(
const ViewHostMsg_SelectionBounds_Params& params) {
-#if 0
ViewHostMsg_SelectionBounds_Params guest_params(params);
guest_params.anchor_rect = ConvertRectToPixel(device_scale_factor_, params.anchor_rect);
guest_params.focus_rect = ConvertRectToPixel(device_scale_factor_, params.focus_rect);
if (im_context_)
im_context_->UpdateCaretBounds(gfx::UnionRects(guest_params.anchor_rect, guest_params.focus_rect));
-
+#if defined(EWK_REFACTOR)
if (GetSelectionController()) {
GetSelectionController()->UpdateSelectionDataAndShow(
guest_params.anchor_rect,
void RenderWidgetHostViewEfl::DidStopFlinging() {
edge_effect_->Hide();
-
-#if 0
+#if defined(EWK_REFACTOR)
SelectionControllerEfl* controller = GetSelectionController();
if (!controller)
return;
}
void RenderWidgetHostViewEfl::ResizeCompositingSurface(const gfx::Size& size) {
-#if 0
+#if defined(EWK_REFACTOR)
if (web_view_)
web_view_->DidChangeContentsArea(size.width(), size.height());
#endif
HandleTouchEvent(&touch_event);
}
-#if 0 //defined(OS_TIZEN)
+#if defined(EWK_REFACTOR) //defined(OS_TIZEN)
if (count >= 2) {
state = evas_touch_point_list_nth_state_get(evas_, 0);
if (state == EVAS_TOUCH_POINT_DOWN) {
}
void RenderWidgetHostViewEfl::FilterInputMotion(const blink::WebGestureEvent& gesture_event) {
-#if 0 //defined(OS_TIZEN)
+#if defined(EWK_REFACTOR) //defined(OS_TIZEN)
if (gesture_event.type == blink::WebInputEvent::GesturePinchUpdate) {
Evas_Coord_Point position;
void RenderWidgetHostViewEfl::HandleGestureBegin() {
edge_effect_->Enable();
-#if 0
+#if defined(EWK_REFACTOR)
selection_acked_on_tap_ = false;
was_scrolled_ = false;
if (GetSelectionController()) {
void RenderWidgetHostViewEfl::HandleGestureEnd() {
edge_effect_->Disable();
-#if 0
+#if defined(EWK_REFACTOR)
if (GetSelectionController()) {
if (GetSelectionController()->GetScrollStatus())
GetSelectionController()->SetScrollStatus(false);
void RenderWidgetHostViewEfl::HandleGesture(
blink::WebGestureEvent& event) {
-#if 0
+#if defined(EWK_REFACTOR)
if (event.type == blink::WebInputEvent::GestureTap) {
eweb_view()->HandlePostponedGesture(event.x, event.y, ui::ET_GESTURE_TAP);
} else if (event.type == blink::WebInputEvent::GestureShowPress) {
current_orientation_ = orientation;
}
-#if 0
+#if defined(EWK_REFACTOR)
SelectionControllerEfl* RenderWidgetHostViewEfl::GetSelectionController() {
if (web_view_)
return web_view_->GetSelectionController();
ack);
}
+void RenderWidgetHostViewEfl::ScrollFocusedEditableNode() {
+ host_->ScrollFocusedEditableNodeIntoRect(gfx::Rect(0, 0, 0, 0));
+}
+
} // namespace content