From 0d745c90c5782d6964a25d4c4fedcf78f4c78b8f Mon Sep 17 00:00:00 2001 From: barbieri Date: Sat, 10 Jan 2009 14:48:29 +0000 Subject: [PATCH] Fixed (hopefully) ecore_directfb engine. I don't have the libs here to test them now, not even compile. Please let me know of any problems. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@38536 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/ecore_directfb/ecore_directfb.c | 32 +++------------------------- src/lib/ecore_directfb/ecore_directfb_keys.h | 5 ++++- 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/src/lib/ecore_directfb/ecore_directfb.c b/src/lib/ecore_directfb/ecore_directfb.c index 3b5a11e..398200c 100644 --- a/src/lib/ecore_directfb/ecore_directfb.c +++ b/src/lib/ecore_directfb/ecore_directfb.c @@ -13,7 +13,6 @@ * - * */ -static int _ecore_directfb_key_symbols_count = sizeof(_ecore_directfb_key_symbols)/sizeof(Ecore_DirectFB_Key_Symbols); static int _ecore_directfb_init_count = 0; static int _window_event_fd = 0; @@ -85,24 +84,6 @@ _ecore_directfb_event_free_key_up(void *data __UNUSED__, void *ev) } -/* helpers */ -/***********/ -int -_ecore_directfb_hash_compare(void *key1, void *key2) -{ - if(*(unsigned int*)key1 == *(unsigned int*)key2) - return 0; - else - return 1; - -} - -unsigned int _ecore_directfb_hash_create(void *key) -{ - return *(unsigned int*)key % ecore_prime_table[_ecore_directfb_key_symbols_hash->size]; -} - - /* directfb window input events handler */ /****************************************/ @@ -698,7 +679,7 @@ ecore_directfb_init(const char *name) ECORE_DIRECTFB_EVENT_WHEEL = ecore_event_type_new();; /* create the hash table for the keynames */ - _ecore_directfb_key_symbols_hash = eina_hash_int32_new(NULL); + _ecore_directfb_key_symbols_hash = eina_hash_int32_new(free); for(i=0; i<_ecore_directfb_key_symbols_count; i++) { struct keymap *k; @@ -724,15 +705,8 @@ ecore_directfb_shutdown(void) return 0; } ecore_main_fd_handler_del(_window_event_fd_handler_handle); - /* free the key symbol names hash */ - for(i=0; i<_ecore_directfb_key_symbols_count; i++) - { - struct keymap *k; - k = eina_hash_find(_ecore_directfb_key_symbols_hash, &_ecore_directfb_key_symbols[i].id); - eina_hash_del(_ecore_directfb_key_symbols_hash, &_ecore_directfb_key_symbols[i].id); - free(k); - } - + eina_hash_free(_ecore_directfb_key_symbols_hash); + if(_ecore_directfb_fullscreen_window_id) { DFBCHECK(_input_event->Release(_input_event)); diff --git a/src/lib/ecore_directfb/ecore_directfb_keys.h b/src/lib/ecore_directfb/ecore_directfb_keys.h index e24d715..9b2c96f 100644 --- a/src/lib/ecore_directfb/ecore_directfb_keys.h +++ b/src/lib/ecore_directfb/ecore_directfb_keys.h @@ -4,7 +4,9 @@ struct _Ecore_DirectFB_Key_Symbols char *string; char *name; unsigned int id; -} _ecore_directfb_key_symbols[] = { +}; + +static const Ecore_DirectFB_Key_Symbols _ecore_directfb_key_symbols[] = { {"\010", "BackSpace",DIKS_BACKSPACE}, {"\011", "Tab", DIKS_TAB}, {"\015", "Return", DIKS_RETURN}, @@ -179,3 +181,4 @@ struct _Ecore_DirectFB_Key_Symbols /* not included the custom keys */ {"", "VoidSymbol", DIKS_NULL} }; +static int _ecore_directfb_key_symbols_count = sizeof(_ecore_directfb_key_symbols)/sizeof(Ecore_DirectFB_Key_Symbols); -- 2.7.4