From 271a21df59b62856b028bf39678b668b6251d36a Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Mon, 1 Oct 2012 10:27:39 +0000 Subject: [PATCH] E (RandR): Add callbacks in randr widget for monitor_rotated and monitor_moved. Add del hook for when monitor gets deleted so we can cleanup callbacks. Fix monitor smart object to build. SVN revision: 77261 --- src/modules/conf_randr/e_smart_monitor.c | 2 +- src/modules/conf_randr/e_smart_randr.c | 34 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/modules/conf_randr/e_smart_monitor.c b/src/modules/conf_randr/e_smart_monitor.c index c645d3d03..55364c1b0 100644 --- a/src/modules/conf_randr/e_smart_monitor.c +++ b/src/modules/conf_randr/e_smart_monitor.c @@ -965,7 +965,7 @@ _e_smart_monitor_rotate_snap(Evas_Object *obj) /* tell randr widget we rotated this monitor so that it can * update the layout for any monitors around this one */ - evas_object_smart_callback_call(mon, "monitor_rotated", NULL); + evas_object_smart_callback_call(obj, "monitor_rotated", NULL); } static void diff --git a/src/modules/conf_randr/e_smart_randr.c b/src/modules/conf_randr/e_smart_randr.c index 699aa9443..986640f2e 100644 --- a/src/modules/conf_randr/e_smart_randr.c +++ b/src/modules/conf_randr/e_smart_randr.c @@ -29,6 +29,9 @@ static void _e_smart_clip_set(Evas_Object *obj, Evas_Object *clip); static void _e_smart_clip_unset(Evas_Object *obj); static void _e_smart_reconfigure(E_Smart_Data *sd); static void _e_smart_cb_monitor_resized(void *data, Evas_Object *obj, void *event __UNUSED__); +static void _e_smart_cb_monitor_rotated(void *data, Evas_Object *obj, void *event __UNUSED__); +static void _e_smart_cb_monitor_moved(void *data, Evas_Object *obj, void *event __UNUSED__); +static void _e_smart_cb_monitor_deleted(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *obj, void *event __UNUSED__); /* public functions */ Evas_Object * @@ -77,6 +80,14 @@ e_smart_randr_monitor_add(Evas_Object *obj, Evas_Object *mon) /* add listeners for when this monitor changes */ evas_object_smart_callback_add(mon, "monitor_resized", _e_smart_cb_monitor_resized, sd); + evas_object_smart_callback_add(mon, "monitor_rotated", + _e_smart_cb_monitor_rotated, sd); + evas_object_smart_callback_add(mon, "monitor_moved", + _e_smart_cb_monitor_moved, sd); + + /* add listener for when this monitor gets removed */ + evas_object_event_callback_add(mon, EVAS_CALLBACK_DEL, + _e_smart_cb_monitor_deleted, sd); /* pack this monitor into the layout */ e_layout_pack(sd->o_layout, mon); @@ -305,3 +316,26 @@ _e_smart_cb_monitor_resized(void *data, Evas_Object *obj, void *event __UNUSED__ /* thaw layout to allow redraw */ e_layout_thaw(sd->o_layout); } + +static void +_e_smart_cb_monitor_rotated(void *data, Evas_Object *obj, void *event __UNUSED__) +{ + +} + +static void +_e_smart_cb_monitor_moved(void *data, Evas_Object *obj, void *event __UNUSED__) +{ + +} + +static void +_e_smart_cb_monitor_deleted(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *obj, void *event __UNUSED__) +{ + evas_object_smart_callback_del(obj, "monitor_resized", + _e_smart_cb_monitor_resized); + evas_object_smart_callback_del(obj, "monitor_rotated", + _e_smart_cb_monitor_rotated); + evas_object_smart_callback_del(obj, "monitor_moved", + _e_smart_cb_monitor_moved); +}