aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/modules/appmenu/e_mod_appmenu_private.h1
-rw-r--r--src/modules/appmenu/e_mod_dbus_registrar_server.c8
-rw-r--r--src/modules/appmenu/e_mod_main.c2
3 files changed, 10 insertions, 1 deletions
diff --git a/src/modules/appmenu/e_mod_appmenu_private.h b/src/modules/appmenu/e_mod_appmenu_private.h
index 7bb5a16ef..d3356aeb5 100644
--- a/src/modules/appmenu/e_mod_appmenu_private.h
+++ b/src/modules/appmenu/e_mod_appmenu_private.h
@@ -37,6 +37,7 @@ struct _E_AppMenu_Window
void appmenu_window_free(E_AppMenu_Window *window);
void appmenu_dbus_registrar_server_init(E_AppMenu_Context *ctx);
+void appmenu_dbus_registrar_server_shutdown(E_AppMenu_Context *ctx);
void appmenu_application_monitor(void *data, const char *bus, const char *old, const char *new);
void appmenu_menu_render(E_AppMenu_Context *ctxt EINA_UNUSED, E_AppMenu_Window *w);
void appmenu_menu_of_instance_render(E_AppMenu_Instance *inst, E_AppMenu_Window *window);
diff --git a/src/modules/appmenu/e_mod_dbus_registrar_server.c b/src/modules/appmenu/e_mod_dbus_registrar_server.c
index 096b635a7..2a9f03482 100644
--- a/src/modules/appmenu/e_mod_dbus_registrar_server.c
+++ b/src/modules/appmenu/e_mod_dbus_registrar_server.c
@@ -195,3 +195,11 @@ appmenu_dbus_registrar_server_init(E_AppMenu_Context *ctx)
edbus_name_request(ctx->conn, REGISTRAR_BUS,
EDBUS_NAME_REQUEST_FLAG_REPLACE_EXISTING, NULL, NULL);
}
+
+void
+appmenu_dbus_registrar_server_shutdown(E_AppMenu_Context *ctx)
+{
+ edbus_service_interface_unregister(ctx->iface);
+ edbus_name_release(ctx->conn, REGISTRAR_BUS, NULL, NULL);
+ ctx->iface = NULL;
+}
diff --git a/src/modules/appmenu/e_mod_main.c b/src/modules/appmenu/e_mod_main.c
index 028f5746a..8ad6a70db 100644
--- a/src/modules/appmenu/e_mod_main.c
+++ b/src/modules/appmenu/e_mod_main.c
@@ -193,7 +193,7 @@ e_modapi_shutdown(E_Module *m)
EINA_LIST_FOREACH_SAFE(ctxt->windows, l, l2, w)
appmenu_window_free(w);
- edbus_service_interface_unregister(ctxt->iface);
+ appmenu_dbus_registrar_server_shutdown(ctxt);
edbus_connection_unref(ctxt->conn);
edbus_shutdown();
free(ctxt);