Source/WebKit2/ChangeLog

 12012-09-05 Alexander Shalamov <alexander.shalamov@intel.com>
 2
 3 [EFL][WK2] Add fullscreen enter / exit signals to the ewk_view API
 4 https://bugs.webkit.org/show_bug.cgi?id=92362
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add fullscreen,enter and fullscreen,exit signals to ewk_view API, so that
 9 UI could enter and exit fullscreen mode when requested.
 10
 11 * UIProcess/API/efl/ewk_view.cpp:
 12 (ewk_view_base_add):
 13 (ewk_view_full_screen_enter):
 14 (ewk_view_full_screen_exit):
 15 * UIProcess/API/efl/ewk_view.h:
 16 * UIProcess/API/efl/ewk_view_private.h:
 17 * UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
 18 (WebKit::WebFullScreenManagerProxy::enterFullScreen):
 19 (WebKit::WebFullScreenManagerProxy::exitFullScreen):
 20
1212012-09-04 Allan Sandfeld Jensen <allan.jensen@nokia.com>
222
323 Allow child-frame content in hit-tests.

Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

3535#include "WebPageGroup.h"
3636#include "WebPopupItem.h"
3737#include "WebPopupMenuProxyEfl.h"
 38#include "WebPreferences.h"
3839#include "ewk_back_forward_list_private.h"
3940#include "ewk_context.h"
4041#include "ewk_context_private.h"

5859#include <WebKit2/WKPageGroup.h>
5960#include <wtf/text/CString.h>
6061
 62#if ENABLE(FULLSCREEN_API)
 63#include "WebFullScreenManagerProxy.h"
 64#endif
 65
6166#if USE(ACCELERATED_COMPOSITING)
6267#include <Evas_GL.h>
6368#endif

@@static void _ewk_view_initialize(Evas_Object* ewkView, Ewk_Context* context, WKP
714719 ewk_view_policy_client_attach(wkPage, ewkView);
715720 ewk_view_resource_load_client_attach(wkPage, ewkView);
716721 ewk_view_ui_client_attach(wkPage, ewkView);
 722#if ENABLE(FULLSCREEN_API)
 723 priv->pageProxy->fullScreenManager()->setWebView(ewkView);
 724 priv->pageProxy->pageGroup()->preferences()->setFullScreenEnabled(true);
 725#endif
717726}
718727
719728static Evas_Object* _ewk_view_add_with_smart(Evas* canvas, Evas_Smart* smart)

@@void ewk_view_display(Evas_Object* ewkView, const IntRect& rect)
11521161
11531162/**
11541163 * @internal
 1164 *
 1165 * Emits signal: "fullscreen,enter".
 1166 */
 1167void ewk_view_full_screen_enter(Evas_Object* ewkView)
 1168{
 1169#if ENABLE(FULLSCREEN_API)
 1170 evas_object_smart_callback_call(ewkView, "fullscreen,enter", 0);
 1171#endif
 1172}
 1173
 1174/**
 1175 * @internal
 1176 *
 1177 * Emits signal: "fullscreen,exit".
 1178 */
 1179void ewk_view_full_screen_exit(Evas_Object* ewkView)
 1180{
 1181#if ENABLE(FULLSCREEN_API)
 1182 evas_object_smart_callback_call(ewkView, "fullscreen,exit", 0);
 1183#endif
 1184}
 1185
 1186/**
 1187 * @internal
11551188 * A download for that view was cancelled.
11561189 *
11571190 * Emits signal: "download,cancelled" with pointer to a Ewk_Download_Job.

Source/WebKit2/UIProcess/API/efl/ewk_view.h

4242 * when done to continue with the form submission. If the last reference is removed on a
4343 * #Ewk_Form_Submission_Request and the form has not been submitted yet,
4444 * ewk_form_submission_request_submit() will be called automatically.
 45 * - "fullscreen,enter", emitted when view is requested to enter full screen mode.
 46 * - "fullscreen,exit", emitted when view is requested to exit full screen mode.
4547 * - "intent,request,new", Ewk_Intent*: reports new Web intent request.
4648 * - "intent,service,register", Ewk_Intent_Service*: reports new Web intent service registration.
4749 * - "load,error", const Ewk_Web_Error*: reports main frame load failed.

Source/WebKit2/UIProcess/API/efl/ewk_view_private.h

@@void ewk_view_download_job_failed(Evas_Object* ewkView, Ewk_Download_Job*, Ewk_W
5959void ewk_view_download_job_finished(Evas_Object* ewkView, Ewk_Download_Job*);
6060void ewk_view_download_job_requested(Evas_Object* ewkView, Ewk_Download_Job*);
6161void ewk_view_form_submission_request_new(Evas_Object* ewkView, Ewk_Form_Submission_Request*);
 62#if ENABLE(FULLSCREEN_API)
 63void ewk_view_full_screen_enter(Evas_Object* ewkView);
 64void ewk_view_full_screen_exit(Evas_Object* ewkView);
 65#endif
6266void ewk_view_image_data_set(Evas_Object* ewkView, void* imageData, const WebCore::IntSize& size);
6367void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Web_Error* error);
6468void ewk_view_load_finished(Evas_Object* ewkView);

Source/WebKit2/UIProcess/efl/WebFullScreenManagerProxyEfl.cpp

2525
2626#include "config.h"
2727#include "WebFullScreenManagerProxy.h"
 28#include "ewk_view_private.h"
2829
2930#if ENABLE(FULLSCREEN_API)
3031

@@bool WebFullScreenManagerProxy::isFullScreen()
5253
5354void WebFullScreenManagerProxy::enterFullScreen()
5455{
55  notImplemented();
 56 if (!m_webView)
 57 return;
 58
 59 willEnterFullScreen();
 60 ewk_view_full_screen_enter(m_webView);
 61 didEnterFullScreen();
5662}
5763
5864void WebFullScreenManagerProxy::exitFullScreen()
5965{
60  notImplemented();
 66 if (!m_webView)
 67 return;
 68
 69 willExitFullScreen();
 70 ewk_view_full_screen_exit(m_webView);
 71 didExitFullScreen();
6172}
6273
6374void WebFullScreenManagerProxy::beganEnterFullScreen(const IntRect& initialFrame, const IntRect& finalFrame)

Tools/ChangeLog

 12012-09-05 Alexander Shalamov <alexander.shalamov@intel.com>
 2
 3 [EFL][WK2] Add fullscreen enter / exit signals to the ewk_view API
 4 https://bugs.webkit.org/show_bug.cgi?id=92362
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Listen to fullscreen request events and handle them in EFL MiniBrowser.
 9
 10 * MiniBrowser/efl/main.c:
 11 (on_fullscreen_enter):
 12 (on_fullscreen_exit):
 13 (browserCreate):
 14
1152012-09-03 Ryuan Choi <ryuan.choi@samsung.com>
216
317 [EFL] Change the focus when the web view is clicked in MiniBrowser and EWebLauncher

Tools/MiniBrowser/efl/main.c

2323#include <Ecore_Evas.h>
2424#include <Eina.h>
2525#include <Evas.h>
 26#ifdef HAVE_ECORE_X
 27#include <Ecore_X.h>
 28#endif
2629
2730static const int DEFAULT_WIDTH = 800;
2831static const int DEFAULT_HEIGHT = 600;

@@on_error(void *user_data, Evas_Object *webview, void *event_info)
202205 eina_strbuf_free(buffer);
203206}
204207
 208static void
 209on_fullscreen_enter(void *user_data, Evas_Object *webview, void *event_info)
 210{
 211#ifdef HAVE_ECORE_X
 212 MiniBrowser *app = (MiniBrowser *)user_data;
 213 Ecore_Window window = ecore_evas_window_get(app->ee);
 214 ecore_x_netwm_state_request_send((Ecore_X_Window)window, 0, ECORE_X_WINDOW_STATE_UNKNOWN, ECORE_X_WINDOW_STATE_FULLSCREEN, EINA_TRUE);
 215#endif
 216}
 217
 218static void
 219on_fullscreen_exit(void *user_data, Evas_Object *webview, void *event_info)
 220{
 221#ifdef HAVE_ECORE_X
 222 MiniBrowser *app = (MiniBrowser *)user_data;
 223 Ecore_Window window = ecore_evas_window_get(app->ee);
 224 ecore_x_netwm_state_request_send((Ecore_X_Window)window, 0, ECORE_X_WINDOW_STATE_UNKNOWN, ECORE_X_WINDOW_STATE_FULLSCREEN, EINA_FALSE);
 225#endif
 226}
 227
205228static int
206229quit(Eina_Bool success, const char *msg)
207230{

@@static MiniBrowser *browserCreate(const char *url, const char *engine)
250273 evas_object_smart_callback_add(app->browser, "load,progress", on_progress, app);
251274 evas_object_smart_callback_add(app->browser, "title,changed", on_title_changed, app);
252275 evas_object_smart_callback_add(app->browser, "uri,changed", on_url_changed, app);
 276 evas_object_smart_callback_add(app->browser, "fullscreen,enter", on_fullscreen_enter, app);
 277 evas_object_smart_callback_add(app->browser, "fullscreen,exit", on_fullscreen_exit, app);
253278
254279 evas_object_event_callback_add(app->browser, EVAS_CALLBACK_KEY_DOWN, on_key_down, app);
255280 evas_object_event_callback_add(app->browser, EVAS_CALLBACK_MOUSE_DOWN, on_mouse_down, app);