This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository enlightenment.
View the commit online.
commit 39a08484e026ced6604cbe5bc61959f70ac82356
Author: [email protected] <[email protected]>
AuthorDate: Tue May 12 10:00:42 2026 -0600
fix(networkmanager): restore popup-list icon visibility via elm_layout
Icons in AP/ethernet popup rows were rendering at 0×0 inside the 32×32
cell spacer, making signal bars, lock symbols, and band labels invisible.
Root cause: edje_object_add doesn't propagate the theme group's min:
directive to evas size hints (only elm_layout's _sizing_eval bridges this
via efl_ui_layout.c:211-221).
Switch icon factories from edje_object_add to elm_layout_add so the
connman theme's group min: (16×16) propagates into evas size hints that
elm_table honors. Update edje API calls to operate on elm_layout_edje_get
where needed. Add EVAS_HINT_EXPAND/FILL so icons expand to fill the
32×32 cell provided by the rect spacer.
Also add _enm_theme_layout_file_set() helper (parallel to the existing
edje helper) to resolve theme files through the nm/connman namespace
fallback chain and set them via elm_layout_file_set.
---
src/modules/networkmanager/e_mod_main.c | 63 ++++++++++++++++++++++++---------
1 file changed, 46 insertions(+), 17 deletions(-)
diff --git a/src/modules/networkmanager/e_mod_main.c b/src/modules/networkmanager/e_mod_main.c
index f58137fa7..21074cfd8 100644
--- a/src/modules/networkmanager/e_mod_main.c
+++ b/src/modules/networkmanager/e_mod_main.c
@@ -27,6 +27,26 @@ _enm_theme_edje_object_set(Evas_Object *o, const char *group)
return e_theme_edje_object_set(o, "base/theme/modules/connman", buf);
}
+/* Same fallback chain but for elm_layout, so the theme's group min:
+ * propagates into the layout's evas size hint min (elm_table/genlist will
+ * then honor it). */
+static Eina_Bool
+_enm_theme_layout_file_set(Evas_Object *layout, const char *group)
+{
+ char buf[256];
+ const char *file;
+
+ snprintf(buf, sizeof(buf), "e/modules/networkmanager/%s", group);
+ file = elm_theme_group_path_find(NULL, buf);
+ if (!file)
+ {
+ snprintf(buf, sizeof(buf), "e/modules/connman/%s", group);
+ file = elm_theme_group_path_find(NULL, buf);
+ if (!file) return EINA_FALSE;
+ }
+ return elm_layout_file_set(layout, file, buf);
+}
+
const char *
e_nm_theme_path(void)
{
@@ -77,11 +97,13 @@ static Eina_Bool _enm_ssid_is_active(struct NM_Manager *nm, const char *ssid);
/* Forward declarations for icon/forget-button factories used in item class
* callbacks defined before the factory implementations. */
static Evas_Object *_enm_ap_icon_new(struct NM_Manager *nm,
- struct NM_Access_Point *ap, Evas *evas);
+ struct NM_Access_Point *ap,
+ Evas_Object *parent);
static Evas_Object *_enm_ap_end_new(struct NM_Manager *nm,
struct NM_Access_Point *ap,
Evas_Object *parent);
-static Evas_Object *_enm_eth_icon_new(struct NM_Device *dev, Evas *evas);
+static Evas_Object *_enm_eth_icon_new(struct NM_Device *dev,
+ Evas_Object *parent);
/* Per-item data for genlist AP and ethernet rows */
typedef struct _Enm_Item_Data
@@ -136,7 +158,7 @@ _enm_itc_ap_content_get(void *data, Evas_Object *obj, const char *part)
tbl = elm_table_add(obj);
- ic = _enm_ap_icon_new(id->nm, id->ap, evas_object_evas_get(obj));
+ ic = _enm_ap_icon_new(id->nm, id->ap, obj);
if (!ic)
{
evas_object_del(tbl);
@@ -184,7 +206,7 @@ _enm_itc_eth_content_get(void *data, Evas_Object *obj, const char *part)
tbl = elm_table_add(obj);
- ic = _enm_eth_icon_new(id->dev, evas_object_evas_get(obj));
+ ic = _enm_eth_icon_new(id->dev, obj);
if (!ic)
{
evas_object_del(tbl);
@@ -325,14 +347,18 @@ _enm_item_activated_cb(void *data, Evas_Object *obj EINA_UNUSED,
}
static Evas_Object *
-_enm_ap_icon_new(struct NM_Manager *nm, struct NM_Access_Point *ap, Evas *evas)
+_enm_ap_icon_new(struct NM_Manager *nm, struct NM_Access_Point *ap,
+ Evas_Object *parent)
{
Edje_Message_Int_Set *msg;
- Evas_Object *icon;
+ Evas_Object *icon, *ed;
int state_val;
- icon = edje_object_add(evas);
- _enm_theme_edje_object_set(icon, "icon/wifi");
+ icon = elm_layout_add(parent);
+ _enm_theme_layout_file_set(icon, "icon/wifi");
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ ed = elm_layout_edje_get(icon);
/* Map active AP to ONLINE(5), otherwise IDLE(1) — ConnMan theme values */
state_val = (ap->ssid && _enm_ssid_is_active(nm, ap->ssid)) ? 5 : 1;
@@ -343,7 +369,7 @@ _enm_ap_icon_new(struct NM_Manager *nm, struct NM_Access_Point *ap, Evas *evas)
msg->count = 2;
msg->val[0] = state_val;
msg->val[1] = ap->strength;
- edje_object_message_send(icon, EDJE_MESSAGE_INT_SET, 1, msg);
+ edje_object_message_send(ed, EDJE_MESSAGE_INT_SET, 1, msg);
free(msg);
}
@@ -363,10 +389,10 @@ _enm_ap_icon_new(struct NM_Manager *nm, struct NM_Access_Point *ap, Evas *evas)
snprintf(secbuf, sizeof(secbuf), "e,security,ieee8021x");
else
snprintf(secbuf, sizeof(secbuf), "e,security,%s", sec);
- edje_object_signal_emit(icon, secbuf, "e");
+ elm_layout_signal_emit(icon, secbuf, "e");
}
else
- edje_object_signal_emit(icon, "e,security,off", "e");
+ elm_layout_signal_emit(icon, "e,security,off", "e");
}
/* Set frequency band label */
@@ -381,7 +407,7 @@ _enm_ap_icon_new(struct NM_Manager *nm, struct NM_Access_Point *ap, Evas *evas)
else
band = "2.4";
- edje_object_part_text_set(icon, "e.text.band-label", band);
+ elm_object_part_text_set(icon, "e.text.band-label", band);
}
return icon;
@@ -484,14 +510,17 @@ _enm_ap_end_new(struct NM_Manager *nm, struct NM_Access_Point *ap,
}
static Evas_Object *
-_enm_eth_icon_new(struct NM_Device *dev, Evas *evas)
+_enm_eth_icon_new(struct NM_Device *dev, Evas_Object *parent)
{
Edje_Message_Int_Set *msg;
- Evas_Object *icon;
+ Evas_Object *icon, *ed;
int state_val;
- icon = edje_object_add(evas);
- _enm_theme_edje_object_set(icon, "icon/ethernet");
+ icon = elm_layout_add(parent);
+ _enm_theme_layout_file_set(icon, "icon/ethernet");
+ evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ ed = elm_layout_edje_get(icon);
/* NM device state 100 = activated → ONLINE(5), otherwise IDLE(1) */
state_val = (dev->state >= 100) ? 5 : 1;
@@ -502,7 +531,7 @@ _enm_eth_icon_new(struct NM_Device *dev, Evas *evas)
msg->count = 2;
msg->val[0] = state_val;
msg->val[1] = 100; /* ethernet has no signal strength concept */
- edje_object_message_send(icon, EDJE_MESSAGE_INT_SET, 1, msg);
+ edje_object_message_send(ed, EDJE_MESSAGE_INT_SET, 1, msg);
free(msg);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.