discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9439228816d07083e193441de4523ad8a0001c7e
commit 9439228816d07083e193441de4523ad8a0001c7e Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Mon Sep 19 15:18:06 2016 -0400 add backspace/delete for clearing all lockscreen gadgets this was turning into a total wasteland --- src/bin/e_gadget.c | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 2114337..7b87556 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -726,15 +726,21 @@ _gadget_act_configure(E_Object *obj, const char *params EINA_UNUSED, E_Binding_E } static void -_gadget_menu_remove(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED) +_gadget_remove(E_Gadget_Config *zgc) { - E_Gadget_Config *zgc = data; - evas_object_smart_callback_call(zgc->site->layout, "gadget_removed", zgc->gadget); zgc->site->gadget_list = eina_inlist_remove(zgc->site->gadget_list, EINA_INLIST_GET(zgc)); zgc->site->gadgets = eina_list_remove(zgc->site->gadgets, zgc); - evas_object_smart_need_recalculate_set(zgc->site->layout, 1); _gadget_free(zgc); +} + +static void +_gadget_menu_remove(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED) +{ + E_Gadget_Config *zgc = data; + + _gadget_remove(zgc); + evas_object_smart_need_recalculate_set(zgc->site->layout, 1); e_config_save_queue(); } @@ -1955,11 +1961,27 @@ _edit_end() e_comp_ungrab_input(1, 1); } +static void +_gadget_desklock_clear(void) +{ + Eina_List *l; + E_Gadget_Site *zgs; + + EINA_LIST_FOREACH(sites->sites, l, zgs) + if (zgs->autoadd && zgs->layout && strstr(zgs->name, "desklock.")) + { + E_LIST_FOREACH(zgs->gadgets, _gadget_remove); + } + e_config_save_queue(); +} + static Eina_Bool _gadget_key_handler(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Key *ev) { if (eina_streq(ev->key, "Escape")) _gadget_desklock_del(); + else if (eina_streq(ev->key, "Delete") || eina_streq(ev->key, "Backspace")) + _gadget_desklock_clear(); return ECORE_CALLBACK_DONE; } @@ -1998,7 +2020,8 @@ _gadget_desklock_handler(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Comp_Ob memset(&n, 0, sizeof(E_Notification_Notify)); n.timeout = 3000; n.summary = _("Lockscreen Gadgets"); - n.body = _("Press Escape or click the background to exit."); + n.body = _("Press Escape or click the background to exit.<ps/>" + "Use Backspace or Delete to remove all gadgets from this screen"); n.urgency = E_NOTIFICATION_NOTIFY_URGENCY_NORMAL; e_notification_client_send(&n, NULL, NULL); return ECORE_CALLBACK_RENEW; --