forked from enlightenment/enlightenment
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:
parent
38d31cf0c0
commit
6cca89c83f
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue