okra pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2565055eeb5da2512bdb2eebfb8ac95e82b71034
commit 2565055eeb5da2512bdb2eebfb8ac95e82b71034 Author: Stephen 'Okra' Houston <[email protected]> Date: Wed Jan 11 12:01:30 2017 -0600 Enlightenment: Luncher - Use internal icons for non .desktop clients. This fixes T5003 --- src/modules/luncher/bar.c | 56 ++++++++++++----------------------------------- 1 file changed, 14 insertions(+), 42 deletions(-) diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c index 89ea219..bb86c00 100644 --- a/src/modules/luncher/bar.c +++ b/src/modules/luncher/bar.c @@ -799,7 +799,6 @@ _bar_icon_preview_show(void *data) return EINA_FALSE; ic->preview = elm_ctxpopup_add(e_comp->elm); - elm_popup_scrollable_set(ic->preview, EINA_TRUE); elm_object_style_set(ic->preview, "noblock"); evas_object_size_hint_min_set(ic->preview, ic->inst->size, ic->inst->size); evas_object_smart_callback_add(ic->preview, "dismissed", _bar_popup_dismissed, NULL); @@ -1016,6 +1015,7 @@ _bar_icon_add(Instance *inst, Efreet_Desktop *desktop, E_Client *non_desktop_cli if (!path) { snprintf(buf, sizeof(buf), "e/icons/%s", desktop->icon); + printf("%s\n", buf); if (eina_list_count(e_theme_collection_items_find("base/theme/icons", buf))) { path = e_theme_edje_file_get("base/theme/icons", buf); @@ -1036,43 +1036,15 @@ _bar_icon_add(Instance *inst, Efreet_Desktop *desktop, E_Client *non_desktop_cli } else if (non_desktop_client) { - E_Client *ec = non_desktop_client; - if (!ec->internal_icon) - { - eina_stringshare_replace(&ic->icon, e_theme_edje_file_get("base/theme/icons", "e/icons/unknown")); - eina_stringshare_replace(&ic->key, "e/icons/unknown"); - } - else - { - eina_stringshare_replace(&ic->icon, ec->internal_icon); - eina_stringshare_replace(&ic->key, ec->internal_icon_key); - } - if (strncmp(ic->icon, "/", 1)) - { - path = efreet_icon_path_find(e_config->icon_theme, ic->icon, inst->size); - if (!path) - { - if (e_util_strcmp(e_config->icon_theme, "hicolor")) - path = efreet_icon_path_find("hicolor", ic->icon, inst->size); - } - } - else if (ecore_file_exists(ic->icon)) - path = ic->icon; - if (path && !ic->key) - { - len = strlen(path); - if ((len > 4) && (!strcasecmp(path + len - 4, ".edj"))) - k = "icon"; - if (k) - eina_stringshare_replace(&ic->key, k); - } - else if (!path) - { - path = e_theme_edje_file_get("base/theme/icons", "e/icons/unknown"); - k = "e/icons/unknown"; - } - else - k = ic->key; + Evas_Object *tmp; + const char *file, *group; + tmp = e_client_icon_add(non_desktop_client, evas_object_evas_get(ic->o_layout)); + e_icon_file_get(tmp, &file, &group); + eina_stringshare_replace(&ic->icon, file); + eina_stringshare_replace(&ic->key, group); + path = ic->icon; + k = ic->key; + evas_object_del(tmp); } elm_image_file_set(ic->o_icon, path, k); @@ -1285,7 +1257,7 @@ _bar_cb_exec_client_prop(void *data EINA_UNUSED, int type EINA_UNUSED, E_Event_C } else { - if (has_desktop) + if (has_desktop && !ev->ec->internal_elm_win) ic = _bar_icon_add(inst, ev->ec->exe_inst->desktop, NULL); else ic = _bar_icon_add(inst, NULL, ev->ec); @@ -1380,7 +1352,7 @@ _bar_cb_exec_new(void *data EINA_UNUSED, int type, E_Exec_Instance *ex) else { if (skip) continue; - if (ex->desktop) + if (ex->desktop && !ec->internal_elm_win) ic = _bar_icon_add(inst, ex->desktop, NULL); else ic = _bar_icon_add(inst, NULL, ec); @@ -1442,7 +1414,7 @@ _bar_fill(Instance *inst) EINA_LIST_FOREACH(ex->clients, lll, ec) { - if (!ec->netwm.state.skip_taskbar) + if (!ec->netwm.state.skip_taskbar && !ec->internal_elm_win) { skip = EINA_FALSE; } @@ -1470,7 +1442,7 @@ _bar_fill(Instance *inst) ic = _bar_icon_match(inst, ec); if (!ic) { - if (ec->exe_inst && ec->exe_inst->desktop) + if (ec->exe_inst && ec->exe_inst->desktop && !ec->internal_elm_win) ic = _bar_icon_add(inst, ec->exe_inst->desktop, NULL); else ic = _bar_icon_add(inst, NULL, ec); --
