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:
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);