viking

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

commit 89b886c6a2f93a91e39374cdaf052e785793d3f6
parent 39f34a3878a505ac79f82e2c5e3acc0ea7b871e7
Author: Kyle Milz <kmilz@ucalgary.ca>
Date:   Wed, 17 Oct 2012 22:14:11 -0600

hook up 2 more window signals

Diffstat:
Msrc/window.c | 23++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/window.c b/src/window.c @@ -313,12 +313,24 @@ inputbox_changed_cb(void *data, Evas_Object *obj, void *event_info) } static void -_win_del_request_cb(void *data, Evas_Object *obj, void *event_info) +delete_request_cb(void *data, Evas_Object *obj, void *event_info) { Window_Data *wd = data; - printf("window requested deletion ..\n"); - - free(wd); + + printf("window requested deletion .."); + + if (eina_list_count(wd->buffer_list) > 1) + printf("denied, more than 1 buffer open\n"); + else + printf("ok!\n"); +} + +static void +free_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + Window_Data *wd = data; + printf("window_free_cb()\n"); + // free(wd); } static void @@ -539,10 +551,11 @@ window_add(App_Data *ad, Session_Window *session_window) session_windows_add(ad->session, wd->session_window); } - evas_object_smart_callback_add(wd->win, "delete,request", _win_del_request_cb, wd); + 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_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);