cleanup on shutdown correctly

This commit is contained in:
Marcel Hollerbach 2017-07-22 10:53:03 +02:00
parent 70386bc094
commit bfb50d06ea
2 changed files with 10 additions and 12 deletions

View File

@ -1,5 +1,5 @@
#include "e.h"
#include "../config.h"
/* module setup */
E_API E_Module_Api e_modapi =
{
@ -10,7 +10,7 @@ E_API E_Module_Api e_modapi =
static Evas_Object *notify, *bx;
static Eina_Hash *string_hash;
static int entry_counter = 0;
static Ecore_Event_Handler *event_data, *event_error;
static Ecore_Exe *keylogger;
typedef struct {
@ -23,9 +23,6 @@ typedef struct {
static void
_del_key(const char *name)
{
Evas_Object *o;
Eina_List *list;
Entry *e = eina_hash_find(string_hash, name);
//something fishy is going on sometimes, then we dont even have a entry
@ -146,7 +143,7 @@ e_modapi_init(E_Module *m)
{
ecore_init();
string_hash = eina_hash_string_small_new(_entry_free);
string_hash = eina_hash_string_small_new((Eina_Free_Cb)_entry_free);
notify = elm_notify_add(e_comp->elm);
elm_notify_allow_events_set(notify, EINA_TRUE);
@ -159,12 +156,12 @@ e_modapi_init(E_Module *m)
evas_object_show(bx);
{
keylogger = ecore_exe_pipe_run("/usr/local/bin/keylogger", ECORE_EXE_PIPE_WRITE |
keylogger = ecore_exe_pipe_run(MODULE_DIR"/keylogger", ECORE_EXE_PIPE_WRITE |
ECORE_EXE_PIPE_READ_LINE_BUFFERED |
ECORE_EXE_PIPE_READ, notify);
EINA_SAFETY_ON_NULL_RETURN_VAL(keylogger, NULL);
ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _msg_from_child_handler, NULL);
ecore_event_handler_add(ECORE_EXE_EVENT_ERROR, _msg_from_child_handler_error, NULL);
event_data = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _msg_from_child_handler, NULL);
event_error = ecore_event_handler_add(ECORE_EXE_EVENT_ERROR, _msg_from_child_handler_error, NULL);
}
return m;
@ -173,6 +170,10 @@ e_modapi_init(E_Module *m)
E_API int
e_modapi_shutdown(E_Module *m EINA_UNUSED)
{
E_FREE_FUNC(keylogger, ecore_exe_kill);
E_FREE_FUNC(notify, evas_object_del);
E_FREE_FUNC(event_data, ecore_event_handler_del);
E_FREE_FUNC(event_error, ecore_event_handler_del);
ecore_shutdown();
return 1;

View File

@ -24,8 +24,6 @@ _release(const char *symbol)
}
int main(void) {
int i;
int number = 0;
int run = 1;
int default_screen;
@ -34,7 +32,6 @@ int main(void) {
Window root_window;
XEvent e;
XDeviceKeyEvent * key;
XInputClassInfo *ip;
XEventClass event_list[20];
default_display = XOpenDisplay(getenv("DISPLAY"));