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;

-- 


Reply via email to