diff --git a/src/bin/e_actions.c b/src/bin/e_actions.c
index 4b7b325b7..dadb5a714 100644
--- a/src/bin/e_actions.c
+++ b/src/bin/e_actions.c
@@ -1315,7 +1315,43 @@ ACT_FN_GO(edit_mode_toggle)
else
e_gadman_mode_set(((E_Container *)obj)->gadman, E_GADMAN_MODE_NORMAL);
}
+/***************************************************************************/
+/***************************************************************************/
+ACT_FN_GO(zone_deskshow_toggle)
+{
+ E_Border *bd;
+ E_Border_List *bl;
+ E_Zone *zone;
+
+ zone = _e_actions_zone_get(obj);
+ if (!zone) zone = e_util_zone_current_get(e_manager_current_get());
+ if (zone)
+ {
+ bl = e_container_border_list_first(zone->container);
+ while ((bd = e_container_border_list_next(bl)))
+ {
+ if (bd->desk == e_desk_current_get(bd->zone))
+ {
+ if (zone->deskshow_toggle)
+ {
+ if (bd->deskshow) e_border_uniconify(bd);
+ bd->deskshow = 0;
+ }
+ else
+ {
+ if (bd->iconic) continue;
+ if (bd->client.netwm.state.skip_taskbar) continue;
+ if (bd->user_skip_winlist) continue;
+ e_border_iconify(bd);
+ bd->deskshow = 1;
+ }
+ }
+ }
+ zone->deskshow_toggle = zone->deskshow_toggle ? 0 : 1;
+ e_container_border_list_free(bl);
+ }
+}
/***************************************************************************/
static void
@@ -1554,6 +1590,12 @@ e_actions_init(void)
e_register_action_predef_name(_("Desktop"), _("Flip Desktop By..."),
"desk_flip_by", NULL, EDIT_RESTRICT_ACTION, 0);
+ /* zone_deskshow_toggle */
+ ACT_GO(zone_deskshow_toggle);
+ e_register_action_predef_name(_("Desktop"), _("Show the desktop"),
+ "zone_deskshow_toggle", NULL,
+ EDIT_RESTRICT_ACTION | EDIT_RESTRICT_PARAMS, 0);
+
/* desk_linear_flip_to */
ACT_GO(desk_flip_to);
e_register_action_predef_name(_("Desktop"), _("Flip Desktop To..."),
diff --git a/src/bin/e_border.h b/src/bin/e_border.h
index 48081ff46..37f53d16a 100644
--- a/src/bin/e_border.h
+++ b/src/bin/e_border.h
@@ -294,6 +294,7 @@ struct _E_Border
unsigned int shading : 1;
unsigned int shaded : 1;
unsigned int iconic : 1;
+ unsigned int deskshow : 1;
unsigned int sticky : 1;
unsigned int shaped : 1;
unsigned int need_shape_merge : 1;
diff --git a/src/bin/e_int_config_keybindings.c b/src/bin/e_int_config_keybindings.c
index f6e7a957d..bd261dd10 100644
--- a/src/bin/e_int_config_keybindings.c
+++ b/src/bin/e_int_config_keybindings.c
@@ -1076,7 +1076,7 @@ _e_keybinding_keybind_cb_del_keybinding(void *data, void *data2)
if (!cfdata) return;
- snprintf(buf, sizeof(buf), _("You requested to delte \"%s\" keybinding.
"
+ snprintf(buf, sizeof(buf), _("You requested to delete \"%s\" keybinding.
"
"
"
"Are you sure you want to delete it?"),
e_widget_ilist_selected_label_get(cfdata->gui.binding_ilist));
diff --git a/src/bin/e_zone.h b/src/bin/e_zone.h
index d70d566ce..238b3f04f 100644
--- a/src/bin/e_zone.h
+++ b/src/bin/e_zone.h
@@ -26,6 +26,7 @@ struct _E_Zone
unsigned int num;
E_Container *container;
int fullscreen;
+ unsigned int deskshow_toggle : 1;
Evas_Object *bg_object;
Evas_Object *bg_event_object;