viking

webkit based web browser for Enlightenment
Log | Files | Refs | LICENSE

commit f82629c3535cc57690603bfacb159354d854abf7
parent a6b914d9266c57526f07a3f027b951eafd7db0d7
Author: Kyle Milz <kmilz@ucalgary.ca>
Date:   Fri,  5 Oct 2012 11:17:47 -0600

patch elementary's elm_web class to use ewebkit2

this patch just changes the way viking interacts with elementary.

in order to build against elementary with ewebkit, you must have the
ewebkit2 port built and installed as well as my elm_web patch for
elementary (not included here).

Diffstat:
Msrc/callbacks.c | 36++++--------------------------------
Msrc/utilities.c | 16+++++++++-------
Msrc/viking.h | 1+
3 files changed, 14 insertions(+), 39 deletions(-)

diff --git a/src/callbacks.c b/src/callbacks.c @@ -258,7 +258,7 @@ webview_load_finished_cb(void *data, Evas_Object *obj, void *event_info) free(buf); */ - // elm_object_focus_set(td->web, EINA_TRUE); + elm_object_focus_set(bd->web, EINA_TRUE); } #if 0 @@ -429,32 +429,6 @@ process_keypress(void *event_info, void *data) } static void -webview_focus_in_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - /* - printf("webview_focus_in()\n"); - Buffer_Data *bd = data; - Window_Data *wd = bd->window; - - evas_object_focus_set(bd->view, EINA_TRUE); - elm_win_keyboard_mode_set(wd->win, ELM_WIN_KEYBOARD_ON); - */ -} - -static void -webview_focus_out_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - /* - printf("webview_focus_out()\n"); - Buffer_Data *bd = data; - Window_Data *wd = bd->window; - - evas_object_focus_set(bd->view, EINA_FALSE); - elm_win_keyboard_mode_set(wd->win, ELM_WIN_KEYBOARD_OFF); - */ -} - -static void webview_keypress_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { Arg a = { .i = ModeNormal, .s = NULL }; @@ -621,9 +595,9 @@ inputbox_activate_cb(void *data, Evas_Object *obj, void *event_info) // gtk_widget_grab_focus(GTK_WIDGET(webview)); /* process_line above may have deleted the tab, check if its still around */ - if (wd->cur_buf->view) - evas_object_focus_set(wd->cur_buf->view, EINA_TRUE); - // elm_object_focus_set(wd->cur_buf->view, EINA_TRUE); + if (wd->cur_buf->web) + // evas_object_focus_set(wd->cur_buf->view, EINA_TRUE); + elm_object_focus_set(wd->cur_buf->web, EINA_TRUE); } static Eina_Bool @@ -1081,8 +1055,6 @@ setup_buffer_callbacks(Buffer_Data *td) evas_object_event_callback_add(td->view, EVAS_CALLBACK_FREE, _web_free_cb, td); evas_object_event_callback_add(td->view, EVAS_CALLBACK_KEY_DOWN, webview_keypress_cb, td); - evas_object_event_callback_add(td->view, EVAS_CALLBACK_FOCUS_IN, webview_focus_in_cb, td); - evas_object_event_callback_add(td->view, EVAS_CALLBACK_FOCUS_OUT, webview_focus_out_cb, td); // evas_object_event_callback_add(td->web, EVAS_CALLBACK_MOUSE_UP, notify_event_cb, td); evas_object_event_callback_add(td->view, EVAS_CALLBACK_MOUSE_WHEEL, webview_mousewheel_cb, td); } diff --git a/src/utilities.c b/src/utilities.c @@ -1112,8 +1112,10 @@ buffer_add(const Arg *arg, Window_Data *wd) td->inspector_enabled = EINA_FALSE; td->proxy_enabled = EINA_FALSE; td->cookies_enabled = EINA_FALSE; - td->view = ewk_view_add_with_context(evas_object_evas_get(wd->win), wd->app->ewk_context); - ewk_view_theme_set(td->view, "/usr/share/ewebkit-0/themes/default.edj"); + // td->view = ewk_view_add_with_context(evas_object_evas_get(wd->win), wd->app->ewk_context); + // ewk_view_theme_set(td->view, "/usr/share/ewebkit-0/themes/default.edj"); + td->web = elm_web_add(wd->win); + td->view = elm_web_webkit_view_get(td->web); wd->buffer_list = eina_list_append(wd->buffer_list, td); @@ -1122,11 +1124,11 @@ buffer_add(const Arg *arg, Window_Data *wd) // ewk_view_setting_user_agent_set(td->view, "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.514.0 Safari/534.7"); // ewk_view_history_enable_set(td->view, EINA_TRUE); - // elm_web_inwin_mode_set(td->web, EINA_TRUE); - evas_object_size_hint_weight_set(td->view, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(td->view, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_web_inwin_mode_set(td->web, EINA_TRUE); + evas_object_size_hint_weight_set(td->web, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(td->web, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_naviframe_item_simple_push(wd->naviframe, td->view); + elm_naviframe_item_simple_push(wd->naviframe, td->web); /* if (wd->cur_buf) @@ -1174,7 +1176,7 @@ buffer_current_set(Buffer_Data *new_buf) // ewk_view_web_inspector_show(new_buf->view); //} - elm_naviframe_item_simple_promote(wd->naviframe, new_buf->view); + elm_naviframe_item_simple_promote(wd->naviframe, new_buf->web); /* if (new_buf->proxy_enabled) enable_proxy(ad->cur_buf); diff --git a/src/viking.h b/src/viking.h @@ -264,6 +264,7 @@ typedef struct struct _Buffer_Data { + Evas_Object *web; Evas_Object *view; unsigned int buf_number;