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;