summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-09-19 15:18:06 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-09-19 15:18:06 -0400
commit9439228816d07083e193441de4523ad8a0001c7e (patch)
treea1e90903235936e297c6bc19b9c063cfd034af69
parent682dd5f8355d0e4f688114adefb465d8c59e5c80 (diff)
downloadenlightenment-9439228816d07083e193441de4523ad8a0001c7e.tar.gz
add backspace/delete for clearing all lockscreen gadgets
this was turning into a total wasteland
-rw-r--r--src/bin/e_gadget.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index 2114337abc..7b875563c3 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;