This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository efm2.
View the commit online.
commit 8579e00da37b09fd9b57940f73c130a4a9bcc669
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
AuthorDate: Thu May 29 11:05:27 2025 +0100
open + open with disabled if nothing selected
---
src/efm/efm.c | 5 +++--
src/efm/efm_popup_menu.c | 23 ++++++++++++-----------
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/src/efm/efm.c b/src/efm/efm.c
index 8e25d55..cf1db6b 100644
--- a/src/efm/efm.c
+++ b/src/efm/efm.c
@@ -1977,7 +1977,8 @@ _item_find_call(Evas_Object *obj, const Efm_Menu *m, int index)
&(m->item[i]));
return EINA_TRUE;
}
- else if (m->item[i].type == EFM_MENU_ITEM_SUBMENU)
+ else if ((m->item[i].type == EFM_MENU_ITEM_SUBMENU) &&
+ (m->item[i].sub))
{
if (_item_find_call(obj, m->item[i].sub, index)) return EINA_TRUE;
}
@@ -2171,7 +2172,7 @@ static void _menu_create_walk(void *data, Evas_Object *obj, const Efm_Menu *m,
= _menu_icon_radcheck_add(o_menu, icon_col, mi->icon, icon_num);
elm_object_item_content_set(it, o_table);
}
- _menu_create_walk(data, obj, mi->sub, o_menu, it);
+ if (mi->sub) _menu_create_walk(data, obj, mi->sub, o_menu, it);
o_radio = NULL;
break;
case EFM_MENU_ITEM_SEPARATOR:
diff --git a/src/efm/efm_popup_menu.c b/src/efm/efm_popup_menu.c
index c18d84b..e5386cb 100644
--- a/src/efm/efm_popup_menu.c
+++ b/src/efm/efm_popup_menu.c
@@ -314,7 +314,7 @@ _efm_popup_icon_menu_add(Smart_Data *sd, Icon *ic, Evas_Coord x, Evas_Coord y)
ctx->mime = eina_stringshare_add(ic->info.mime);
}
m1 = _efm_menu_add("File", "std:file", _cb_menu_file_done, ctx, NULL);
- _efm_menu_it_normal(m1, "Open", "std:document-open", EINA_FALSE,
+ _efm_menu_it_normal(m1, "Open", "std:document-open", !have_sel,
_cb_menu_item_open, ctx, d_main);
{
Efreet_Desktop *d;
@@ -323,8 +323,9 @@ _efm_popup_icon_menu_add(Smart_Data *sd, Icon *ic, Evas_Coord x, Evas_Coord y)
const char *icon = NULL;
// XXX: ask backend to fill in the menu or to augment it?
- m2 = _efm_menu_add("Open With", NULL, NULL, NULL, NULL);
- _efm_menu_it_sub(m1, "Open With", NULL, EINA_FALSE, m2);
+ if (have_sel) m2 = _efm_menu_add("Open With", NULL, NULL, NULL, NULL);
+ else m2 = NULL;
+ _efm_menu_it_sub(m1, "Open With", NULL, !have_sel, m2);
ctx->d_main = d_main;
if (d_main)
{
@@ -337,11 +338,11 @@ _efm_popup_icon_menu_add(Smart_Data *sd, Icon *ic, Evas_Coord x, Evas_Coord y)
icon = buf;
}
}
- _efm_menu_it_normal(m2, d_main->name, icon, EINA_FALSE,
- _cb_menu_item_open, ctx, d_main);
+ if (m2) _efm_menu_it_normal(m2, d_main->name, icon, EINA_FALSE,
+ _cb_menu_item_open, ctx, d_main);
}
if ((ic) && (ic->info.mime)) mimes = efreet_util_desktop_mime_list(ic->info.mime);
- if ((d_main) && (mimes)) _efm_menu_it_separator(m2);
+ if ((d_main) && (mimes) && (m2)) _efm_menu_it_separator(m2);
EINA_LIST_FREE(mimes, d)
{
if (d == d_main)
@@ -359,13 +360,13 @@ _efm_popup_icon_menu_add(Smart_Data *sd, Icon *ic, Evas_Coord x, Evas_Coord y)
icon = buf;
}
}
- _efm_menu_it_normal(m2, d->name, icon, EINA_FALSE,
- _cb_menu_item_open, ctx, d);
+ if (m2) _efm_menu_it_normal(m2, d->name, icon, EINA_FALSE,
+ _cb_menu_item_open, ctx, d);
ctx->desktops = eina_list_append(ctx->desktops, d);
}
- if ((d_main) || (mimes)) _efm_menu_it_separator(m2);
- _efm_menu_it_normal(m2, "Select Other", NULL, EINA_FALSE,
- _cb_menu_item_open_all, ctx, NULL);
+ if (((d_main) || (mimes)) && (m2)) _efm_menu_it_separator(m2);
+ if (m2) _efm_menu_it_normal(m2, "Select ...", NULL, EINA_FALSE,
+ _cb_menu_item_open_all, ctx, NULL);
}
// actions
_efm_menu_it_separator(m1);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.