summaryrefslogtreecommitdiff
path: root/client/ug-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/ug-client.c')
-rw-r--r--client/ug-client.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/client/ug-client.c b/client/ug-client.c
index 38fe98f..bce59d5 100644
--- a/client/ug-client.c
+++ b/client/ug-client.c
@@ -20,8 +20,11 @@
*/
#include <stdio.h>
+#include <dlfcn.h>
+#include <errno.h>
#include <appcore-efl.h>
#include <ui-gadget.h>
+#include <ug-module.h>
#include <dlog.h>
#include <aul.h>
@@ -492,9 +495,22 @@ func_out:
static int app_terminate(void *data)
{
struct appdata *ad = data;
+ char *ug_file_path = NULL;
+ void *handle;
+ int ret;
LOGD("app_terminate called");
+ ret = ug_module_get_file_path(ad->name, &ug_file_path);
+ if (ret == 0) {
+ handle = dlopen(ug_file_path, RTLD_LAZY);
+ if (!handle)
+ LOGE("Failed to dlopen the ug file (%d)", errno);
+ }
+
+ if (ug_file_path)
+ free(ug_file_path);
+
_ug_client_dbus_signal_handler_fini(data);
evas_object_smart_callback_del(ad->win, "wm,rotation,changed", rotate);
@@ -513,9 +529,6 @@ static int app_terminate(void *data)
app_control_destroy(ad->request);
- if (ad->name)
- free(ad->name);
-
LOGD("app_terminate end");
return 0;