viking

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

commit 246734ca3fc8d0145f927b2327ed41be4bcebf7f
parent bd3d1ef1829da628f201493e77186f60587eaaef
Author: Kyle Milz <kmilz@ucalgary.ca>
Date:   Fri, 19 Oct 2012 17:55:41 -0600

bg: attach background to focus state

Diffstat:
Msrc/viking.h | 1+
Msrc/window.c | 23++++++++++++++++++++++-
2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/viking.h b/src/viking.h @@ -185,6 +185,7 @@ typedef struct typedef struct { Evas_Object *win; + Evas_Object *bg; Evas_Object *main_box; Evas_Object *naviframe; Evas_Object *url; /* "inputbox" */ diff --git a/src/window.c b/src/window.c @@ -339,6 +339,23 @@ maximized_cb(void *data, Evas_Object *obj, void *event_info) printf("browser window maximized\n"); } +static void +focus_in_cb(void *data, Evas_Object *obj, void *event_info) +{ + Window_Data *wd = data; + + evas_object_show(wd->bg); +} + +static void +focus_out_cb(void *data, Evas_Object *obj, void *event_info) +{ + Window_Data *wd = data; + + elm_win_alpha_set(wd->win, EINA_TRUE); + evas_object_hide(wd->bg); +} + void window_main_buffer_set(Buffer_Data *new_buf) { @@ -523,6 +540,7 @@ window_add(App_Data *ad, Session_Window *session_window) evas_object_show(url); wd->win = win; + wd->bg = bg; wd->main_box = box; wd->naviframe = naviframe; wd->url = url; @@ -552,9 +570,12 @@ window_add(App_Data *ad, Session_Window *session_window) evas_object_smart_callback_add(wd->win, "delete,request", delete_request_cb, wd); evas_object_smart_callback_add(wd->win, "maximized", maximized_cb, wd); + evas_object_event_callback_add(wd->win, EVAS_CALLBACK_FREE, free_cb, wd); + evas_object_smart_callback_add(wd->win, "focus,in", focus_in_cb, wd); + evas_object_smart_callback_add(wd->win, "focus,out", focus_out_cb, wd); + evas_object_smart_callback_add(wd->url, "activated", inputbox_activate_cb, wd); evas_object_smart_callback_add(wd->url, "changed", inputbox_changed_cb, wd); - evas_object_event_callback_add(wd->win, EVAS_CALLBACK_FREE, free_cb, wd); evas_object_event_callback_add(wd->url, EVAS_CALLBACK_KEY_DOWN, inputbox_keypress_cb, wd); evas_object_event_callback_add(wd->url, EVAS_CALLBACK_KEY_UP, inputbox_keyrelease_cb, wd);