add gadget_site_(un)locked smart callbacks for forcing gadget site visibility

useful for cases where the gadget site has no popups to manage but visibility must
be maintained

ref T4732
This commit is contained in:
Mike Blumenkrantz 2016-10-17 11:55:23 -04:00
parent ae628b214b
commit d0e21c912a
3 changed files with 28 additions and 0 deletions

View File

@ -783,6 +783,26 @@ _bryce_gadget_popup(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
_bryce_popup(data, event_info);
}
static void
_bryce_gadget_locked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Bryce *b = data;
b->autohide_blocked++;
if (b->autohide)
_bryce_autohide_show(b);
}
static void
_bryce_gadget_unlocked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Bryce *b = data;
b->autohide_blocked--;
if (b->autohide && (!b->mouse_in))
_bryce_autohide_hide(b);
}
static void
_bryce_site_anchor(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
@ -814,6 +834,8 @@ _bryce_orient(Bryce *b)
evas_object_smart_callback_add(b->site, "gadget_site_style_menu", _bryce_style_menu, b);
evas_object_smart_callback_add(b->site, "gadget_site_owner_menu", _bryce_owner_menu, b);
evas_object_smart_callback_add(b->site, "gadget_site_popup", _bryce_gadget_popup, b);
evas_object_smart_callback_add(b->site, "gadget_site_locked", _bryce_gadget_locked, b);
evas_object_smart_callback_add(b->site, "gadget_site_unlocked", _bryce_gadget_unlocked, b);
}
static void

View File

@ -291,6 +291,7 @@ _gadget_wizard_end(void *data, int id)
E_Gadget_Config *zgc = data;
zgc->id = id;
evas_object_smart_callback_call(zgc->site->layout, "gadget_site_unlocked", NULL);
_gadget_object_finalize(zgc);
}
@ -307,6 +308,7 @@ _gadget_object_create(E_Gadget_Config *zgc)
{
if (t->wizard)
{
evas_object_smart_callback_call(zgc->site->layout, "gadget_site_locked", NULL);
t->wizard(_gadget_wizard_end, zgc);
added = 1;
return EINA_TRUE;

View File

@ -29,6 +29,10 @@
- the anchor of the gadget site changed
"gadget_site_gravity"
- the gravity of the gadget site changed
"gadget_site_locked"
- the gadget site's visibility has been locked (must be visible)
"gadget_site_unlocked"
- the gadget site's visibility has been unlocked (can be hidden)
* }
* have E_Menu as event_info