Make on/off indicator toggling also send a changed event to the RandR

widget.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 77570
This commit is contained in:
Christopher Michael 2012-10-08 09:13:30 +00:00 committed by Christopher Michael
parent 38d31cf0c0
commit 6cca89c83f
2 changed files with 26 additions and 2 deletions

View File

@ -452,7 +452,7 @@ _e_smart_add(Evas_Object *obj)
_e_smart_cb_indicator_mouse_out, NULL);
edje_object_signal_callback_add(sd->o_frame,
"e,action,indicator,toggle", "e",
_e_smart_cb_indicator_toggle, sd);
_e_smart_cb_indicator_toggle, obj);
/* create event handlers */
sd->hdls =
@ -824,9 +824,11 @@ _e_smart_cb_indicator_mouse_out(void *data __UNUSED__, Evas_Object *obj, const c
static void
_e_smart_cb_indicator_toggle(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
{
Evas_Object *mon;
E_Smart_Data *sd;
if (!(sd = data)) return;
if (!(mon = data)) return;
if (!(sd = evas_object_smart_data_get(mon))) return;
if (sd->connected)
{
@ -840,6 +842,9 @@ _e_smart_cb_indicator_toggle(void *data, Evas_Object *obj __UNUSED__, const char
edje_object_signal_emit(sd->o_base, "e,state,enabled", "e");
edje_object_signal_emit(sd->o_frame, "e,state,enabled", "e");
}
/* tell randr widget that we enabled/disabled this monitor */
evas_object_smart_callback_call(mon, "monitor_toggled", NULL);
}
static void

View File

@ -37,6 +37,7 @@ static void _e_smart_randr_layout_reposition(E_Smart_Data *sd, Evas_Object *obj)
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_toggled(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__);
static void _e_smart_cb_monitor_deleted(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *obj, void *event __UNUSED__);
/* public functions */
@ -90,6 +91,8 @@ e_smart_randr_monitor_add(Evas_Object *obj, Evas_Object *mon)
_e_smart_cb_monitor_rotated, obj);
evas_object_smart_callback_add(mon, "monitor_moved",
_e_smart_cb_monitor_moved, obj);
evas_object_smart_callback_add(mon, "monitor_toggled",
_e_smart_cb_monitor_toggled, obj);
/* add listener for when this monitor gets removed */
evas_object_event_callback_add(mon, EVAS_CALLBACK_DEL,
@ -426,6 +429,20 @@ _e_smart_cb_monitor_moved(void *data, Evas_Object *obj, void *event __UNUSED__)
sd->changed = EINA_FALSE;
}
static void
_e_smart_cb_monitor_toggled(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
{
Evas_Object *o_randr;
E_Smart_Data *sd;
if (!(o_randr = data)) return;
if (!(sd = evas_object_smart_data_get(o_randr)))
return;
evas_object_smart_callback_call(o_randr, "changed", NULL);
sd->changed = EINA_FALSE;
}
/* callback received from the monitor object to let us know that it was
* deleted, and we should cleanup */
static void
@ -437,4 +454,6 @@ _e_smart_cb_monitor_deleted(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_O
_e_smart_cb_monitor_rotated);
evas_object_smart_callback_del(obj, "monitor_moved",
_e_smart_cb_monitor_moved);
evas_object_smart_callback_del(obj, "monitor_toggled",
_e_smart_cb_monitor_toggled);
}