static Eina_Bool _ewk_view_input_picker_show(Ewk_View_Smart_Data*, Ewk_Input_Type, const char* inputValue);
#endif
-#if ENABLE(TIZEN_DATALIST_ELEMENT)
-static Eina_Bool _ewk_view_data_list_show(Ewk_View_Smart_Data*, Ewk_Input_Type, Eina_List*);
-static Eina_Bool _ewk_view_data_list_hide(Ewk_View_Smart_Data*, Ewk_Input_Type);
-#endif
-
#if ENABLE(TIZEN_INPUT_COLOR_PICKER)
static Eina_Bool _ewk_input_picker_color_request(Ewk_View_Smart_Data*, int, int, int, int);
static Eina_Bool _ewk_input_picker_color_dismiss(Ewk_View_Smart_Data*);
return true;
}
+#if ENABLE(TIZEN_FOCUS_UI)
+bool isFocusUIActivationKeyname(const char* key)
+{
+ return !strcmp(key, "Up") || !strcmp(key, "Down") || !strcmp(key, "Left") || !strcmp(key, "Right") || !strcmp(key, "Tab");
+}
+#endif
+
static Eina_Bool _ewk_view_smart_key_down(Ewk_View_Smart_Data* smartData, const Evas_Event_Key_Down* downEvent)
{
EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, false);
+#if ENABLE(TIZEN_FOCUS_UI)
+ if (InputMethodContextEfl::shouldUseExternalKeyboard() && !impl->page()->focusUIEnabled()) {
+ if (isFocusUIActivationKeyname(downEvent->keyname))
+ impl->page()->setFocusUIEnabled(true);
+ return false;
+ }
+#endif
+
bool isFiltered = false;
InputMethodContextEfl* inputMethodContext = impl->inputMethodContext();
if (inputMethodContext)
inputMethodContext->handleKeyDownEvent(downEvent, &isFiltered);
+#if ENABLE(TIZEN_ISF_PORT)
+ NativeWebKeyboardEvent nativeEvent(downEvent, isFiltered);
+ nativeEvent.setInputMethodContextID(impl->pageProxy->editorState().inputMethodContextID);
+ impl->pageProxy->handleKeyboardEvent(nativeEvent);
+#else
impl->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(downEvent, isFiltered));
+#endif
+
return true;
}
{
EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, false);
+#if ENABLE(TIZEN_FOCUS_UI)
+ if (InputMethodContextEfl::shouldUseExternalKeyboard() && !impl->page()->focusUIEnabled())
+ return false;
+#endif
+
impl->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(upEvent));
return true;
}
EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl);
#if ENABLE(TIZEN_WEBKIT2_TILED_AC)
evas_object_image_native_surface_set(smartData->image, 0);
+
+ Ecore_Evas* ee = ecore_evas_ecore_evas_get(smartData->base.evas);
+ impl->pageClient->updateViewportSize(IntSize(width, height), ecore_evas_rotation_get(ee));
#if ENABLE(TIZEN_RUNTIME_BACKEND_SELECTION)
if (!ewk_view_is_opengl_backend(ewkView))
_ewk_view_composite(smartData);
#endif
#if ENABLE(TIZEN_WEBKIT2_TILED_BACKING_STORE) && !ENABLE(TIZEN_WEBKIT2_EFL_WTR)
Ecore_Evas* ee = ecore_evas_ecore_evas_get(smartData->base.evas);
- impl->pageClient->updateViewportSize(IntSize(width, height));
+ impl->pageClient->updateVisibleContentRectSize(IntSize(width, height));
if (ewk_view_is_opengl_backend(ewkView))
impl->pageClient->displayViewport();
#endif
impl->pageClient->frameRectChanged();
#endif
}
-
-#if ENABLE(TIZEN_WEBKIT2_SUSPEND_LOADING_URL)
- // Load URL if it's suspended
- if (impl->suspendedURL()) {
- TIZEN_LOGI("load suspended URL: %s, time: %f", impl->suspendedURL() ? impl->suspendedURL() : "NULL", ecore_time_get() * 1000);
- ewk_view_url_set(ewkView, impl->suspendedURL());
- impl->setSuspendedURL(0);
- }
-#endif
#endif // #if OS(TIZEN)
}
impl->pageClient->frameRectChanged();
#endif
#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
- impl->pageClient->updateTextSelectionHandlesAndContextMenu(true);
+ if (impl->pageClient->isTextSelectionMode()) {
+ impl->pageClient->updateTextSelectionHandlesAndContextMenu(false);
+ impl->pageClient->requestToShowTextSelectionHandlesAndContextMenu();
+ }
#endif
#if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
if (impl->focusRing())
#if ENABLE(TIZEN_INPUT_TAG_EXTENSION)
api->input_picker_show = _ewk_view_input_picker_show;
#endif
-#if ENABLE(TIZEN_DATALIST_ELEMENT)
- api->data_list_show = _ewk_view_data_list_show;
- api->data_list_hide = _ewk_view_data_list_hide;
-#endif
#if ENABLE(TIZEN_SCREEN_ORIENTATION_SUPPORT_INTERNAL)
api->orientation_lock = _ewk_orientation_lock;
api->orientation_unlock = _ewk_orientation_unlock;
EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, false);
EINA_SAFETY_ON_NULL_RETURN_VAL(url, false);
-#if ENABLE(TIZEN_WEBKIT2_SUSPEND_LOADING_URL)
- // Suspend loading URL before view size is calculated
- if (!smartData->view.w || !smartData->view.h) {
- impl->setSuspendedURL(url);
- TIZEN_LOGI("suspended URL: %s, time: %f", impl->suspendedURL() ? impl->suspendedURL() : "NULL", ecore_time_get() * 1000);
- return true;
- }
-#endif
-
impl->pageProxy->loadURL(String::fromUTF8(url));
impl->informURLChange();
}
#endif
-#if ENABLE(TIZEN_DATALIST_ELEMENT)
-static Eina_Bool _ewk_view_data_list_show(Ewk_View_Smart_Data* smartData, Ewk_Input_Type inputType, Eina_List* optionList)
-{
- EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, false);
-
- impl->inputPicker->showDataList(inputType, optionList);
- return true;
-}
-
-static Eina_Bool _ewk_view_data_list_hide(Ewk_View_Smart_Data* smartData, Ewk_Input_Type inputType)
-{
- EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl, false);
-
- impl->inputPicker->hideDataList(inputType);
- return true;
-}
-#endif
-
#if ENABLE(TIZEN_INPUT_COLOR_PICKER)
static Eina_Bool _ewk_input_picker_color_request(Ewk_View_Smart_Data* smartData, int r, int g, int b, int a)
{
IntRect leftSelectionRect;
IntRect rightSelectionRect;
- if (!impl->pageProxy->getSelectionHandlers(leftSelectionRect, rightSelectionRect)) {
+ int selectionDirection = 1;
+ if (!impl->pageProxy->getSelectionHandlers(leftSelectionRect, rightSelectionRect, selectionDirection)) {
leftRect->x = 0;
leftRect->y = 0;
leftRect->w = 0;
}
#endif
+void ewk_view_current_target_input_element_value_set(Evas_Object* ewkView, const char* value)
+{
+#if ENABLE(TIZEN_INPUT_TAG_EXTENSION)
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
+ EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl);
+
+ impl->pageProxy->setCurrentTargetInputElementValue(String::fromUTF8(value));
+#endif // ENABLE(TIZEN_INPUT_TAG_EXTENSION)
+}
+
void ewk_view_focused_input_element_value_set(Evas_Object* ewkView, const char* value)
{
#if ENABLE(TIZEN_INPUT_TAG_EXTENSION)
#endif // ENABLE(TIZEN_INPUT_TAG_EXTENSION)
}
-#if ENABLE(TIZEN_DATALIST_ELEMENT)
-void ewkViewDataListShowRequest(Evas_Object* ewkView, Ewk_Input_Type inputType, Vector<String> optionList)
-{
- EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
- EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl);
- EINA_SAFETY_ON_NULL_RETURN(smartData->api);
- EINA_SAFETY_ON_NULL_RETURN(smartData->api->data_list_show);
-
- if (impl->dataList)
- ewkViewDataListHideRequest(ewkView, inputType);
-
- for (Vector<String>::const_iterator it = optionList.begin(); it != optionList.end(); ++it) {
- String value = *it;
- impl->dataList = eina_list_append(impl->dataList, eina_stringshare_add(value.utf8().data()));
- }
-
- smartData->api->data_list_show(smartData, inputType, impl->dataList);
-}
-
-void ewkViewDataListHideRequest(Evas_Object* ewkView, Ewk_Input_Type inputType)
-{
- EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
- EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl);
- EINA_SAFETY_ON_NULL_RETURN(impl->dataList);
- EINA_SAFETY_ON_NULL_RETURN(smartData->api);
- EINA_SAFETY_ON_NULL_RETURN(smartData->api->data_list_hide);
-
- impl->deleteDataList();
-
- smartData->api->data_list_hide(smartData, inputType);
-}
-#endif
-
-void ewk_view_data_list_close(Evas_Object* ewkView, const char* value)
-{
-#if ENABLE(TIZEN_DATALIST_ELEMENT)
- EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
- EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl);
-
- impl->deleteDataList();
-
- ewk_view_focused_input_element_value_set(ewkView, value);
-#endif
-}
-
Eina_Bool ewk_view_horizontal_panning_hold_get(Evas_Object* ewkView)
{
#if ENABLE(TIZEN_GESTURE)
evas_object_smart_callback_call(ewkView, "touchmove,handled", static_cast<void*>(&wasHandled));
impl->wasHandledTouchMove = wasHandled;
} else if (type == WebEvent::TouchEnd && !impl->exceedTouchMoveThreshold) {
- if (!wasHandled) {
- impl->gestureClient->setMovingEnabled(!wasHandled);
+ if (!wasHandled)
impl->gestureClient->setTapEnabled(!wasHandled);
- }
#if ENABLE(TIZEN_ISF_PORT)
else if (impl->pageProxy->isViewVisible()) {
IntPoint pointForHitTest = impl->transformFromScene().mapPoint(IntPoint(impl->touchDownPoint.x, impl->touchDownPoint.y));
#if ENABLE(TIZEN_FOCUS_UI)
if (type == EWK_TOUCH_START)
- impl->page()->setSpatialNavigationEnabled(false);
+ impl->page()->setFocusUIEnabled(false);
#endif
#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION) && ENABLE(TIZEN_WEBKIT2_FOR_MOVING_TEXT_SELECTION_HANDLE_FROM_OSP)
impl->pageProxy->drawingArea()->setSize(IntSize(width, height), IntSize());
impl->pageClient->setWaitFrameOfNewViewortSize(true);
ewk_view_suspend(ewkView);
- impl->pageClient->updateViewportSize(IntSize(width, height));
+ impl->pageClient->updateViewportSize(IntSize(width, height), angle);
#endif
}