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 c9759550859b5bf5cde739fd1b4cb60288fc5594
Author: Carsten Haitzler <[email protected]>
AuthorDate: Sun Jul 19 09:36:24 2026 +0100

    nm - pop down opup if dialog appears in all cases
---
 src/modules/networkmanager/agent.c                 |  2 ++
 src/modules/networkmanager/e_mod_main.c            | 29 ++++++++++++++++++----
 src/modules/networkmanager/e_mod_main.h            |  1 +
 .../networkmanager/e_networkmanager_vpn_username.c |  2 ++
 4 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/src/modules/networkmanager/agent.c b/src/modules/networkmanager/agent.c
index db526c353..2011c1434 100644
--- a/src/modules/networkmanager/agent.c
+++ b/src/modules/networkmanager/agent.c
@@ -373,6 +373,7 @@ _dialog_new(E_NM_Agent_Request *req, const char *ssid)
 
    evas_object_show(frame);
    e_dialog_content_set(dialog, frame, 0, 0);
+   enm_popups_del();
    e_dialog_show(dialog);
 
    evas_object_event_callback_add(dialog->bg_object, EVAS_CALLBACK_KEY_DOWN,
@@ -504,6 +505,7 @@ _vpn_dialog_new(E_NM_Agent_Request *req, const char *conn_name,
 
    evas_object_show(frame);
    e_dialog_content_set(dialog, frame, minw, 0);
+   enm_popups_del();
    e_dialog_show(dialog);
 
    evas_object_event_callback_add(dialog->bg_object, EVAS_CALLBACK_KEY_DOWN,
diff --git a/src/modules/networkmanager/e_mod_main.c b/src/modules/networkmanager/e_mod_main.c
index fbd3b6218..eede5aaf2 100644
--- a/src/modules/networkmanager/e_mod_main.c
+++ b/src/modules/networkmanager/e_mod_main.c
@@ -168,11 +168,11 @@ enm_config_poll_time_set(double tim)
 }
 
 void
-enm_config_dialog_show(E_NM_Instance *inst)
+enm_config_dialog_show(E_NM_Instance *inst EINA_UNUSED)
 {
    if (!networkmanager_config) return;
    if (networkmanager_config->config_dialog) return;
-   if (inst && inst->popup) enm_popup_del(inst);
+   enm_popups_del();
    e_int_config_networkmanager_module(NULL, NULL);
 }
 
@@ -228,6 +228,7 @@ e_nm_theme_path(void)
 void
 enm_popup_del(E_NM_Instance *inst)
 {
+   if (!inst) return;
    E_FREE_FUNC(inst->ui.popup.deselect_timer, ecore_timer_del);
    inst->ui.popup.deselect_item = NULL;
    E_FREE_FUNC(inst->popup, e_object_del);
@@ -249,6 +250,23 @@ enm_popup_del(E_NM_Instance *inst)
    E_FREE_FUNC(inst->ui.popup.itc_vpn, elm_genlist_item_class_free);
 }
 
+void
+enm_popups_del(void)
+{
+   E_NM_Module_Context *ctxt;
+   Eina_List *l;
+   E_NM_Instance *inst;
+
+   if (!networkmanager_mod) return;
+   ctxt = networkmanager_mod->data;
+   if (!ctxt) return;
+
+   EINA_LIST_FOREACH(ctxt->instances, l, inst)
+     {
+        if (inst->popup) enm_popup_del(inst);
+     }
+}
+
 static void
 _enm_popup_del_cb(void *obj)
 {
@@ -548,6 +566,7 @@ _enm_vpn_import_done_cb(void *data, Eina_Bool ok, const char *err,
      e_dialog_text_set(err_dlg, _("Unknown error"));
    e_dialog_button_add(err_dlg, _("Close"), NULL, NULL, NULL);
    elm_win_center(err_dlg->win, 1, 1);
+   enm_popups_del();
    e_dialog_show(err_dlg);
 }
 
@@ -576,10 +595,9 @@ _enm_vpn_fs_done_cb(void *data, Evas_Object *fs EINA_UNUSED, void *event)
 }
 
 static void
-_enm_vpn_import_clicked_cb(void *data, Evas_Object *o EINA_UNUSED,
+_enm_vpn_import_clicked_cb(void *data EINA_UNUSED, Evas_Object *o EINA_UNUSED,
                            void *einfo EINA_UNUSED)
 {
-   E_NM_Instance *inst = data;
    E_Dialog *dialog;
    Evas_Object *fs;
    const char *dir = efreet_download_dir_get();
@@ -600,8 +618,8 @@ _enm_vpn_import_clicked_cb(void *data, Evas_Object *o EINA_UNUSED,
    evas_object_show(fs);
    e_dialog_content_set(dialog, fs, ELM_SCALE_SIZE(360), ELM_SCALE_SIZE(320));
    elm_win_center(dialog->win, 1, 1);
+   enm_popups_del();
    e_dialog_show(dialog);
-   enm_popup_del(inst);
 }
 
 /* VPN group header: text "VPN" */
@@ -804,6 +822,7 @@ _enm_vpn_show_forget_dialog(struct NM_VPN_Connection *vc)
    e_object_data_set(E_OBJECT(d), ctx);
    e_object_del_attach_func_set(E_OBJECT(d), _enm_vpn_forget_dialog_del_cb);
    elm_win_center(d->win, 1, 1);
+   enm_popups_del();
    e_dialog_show(d);
 }
 
diff --git a/src/modules/networkmanager/e_mod_main.h b/src/modules/networkmanager/e_mod_main.h
index 1561407e3..71e622447 100644
--- a/src/modules/networkmanager/e_mod_main.h
+++ b/src/modules/networkmanager/e_mod_main.h
@@ -101,6 +101,7 @@ E_API int   e_modapi_save(E_Module *m);
 E_Config_Dialog *e_int_config_networkmanager_module(Evas_Object *parent,
                                                     const char *params);
 void        enm_popup_del(E_NM_Instance *inst);
+void        enm_popups_del(void);
 void        enm_mod_aps_update_now(void);
 void        enm_config_dialog_show(E_NM_Instance *inst);
 void        enm_config_poll_time_set(double tim);
diff --git a/src/modules/networkmanager/e_networkmanager_vpn_username.c b/src/modules/networkmanager/e_networkmanager_vpn_username.c
index 5b1eb9557..28162d743 100644
--- a/src/modules/networkmanager/e_networkmanager_vpn_username.c
+++ b/src/modules/networkmanager/e_networkmanager_vpn_username.c
@@ -13,6 +13,7 @@ typedef unsigned char Eina_Bool;
 # include "e.h"
 # include "e_networkmanager.h"
 # include "e_networkmanager_import.h"
+# include "e_mod_main.h"
 # include "e_networkmanager_vpn_username.h"
 #endif
 
@@ -265,6 +266,7 @@ enm_vpn_username_dialog(const char *conn_name, const char *type_label,
 
    evas_object_show(frame);
    e_dialog_content_set(dialog, frame, minw, 0);
+   enm_popups_del();
    e_dialog_show(dialog);
 
    evas_object_event_callback_add(dialog->bg_object, EVAS_CALLBACK_KEY_DOWN,

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to