Fixed (hopefully) ecore_directfb engine.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 10 Jan 2009 14:48:29 +0000 (14:48 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 10 Jan 2009 14:48:29 +0000 (14:48 +0000)
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
src/lib/ecore_directfb/ecore_directfb_keys.h

index 3b5a11e..398200c 100644 (file)
@@ -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));  
index e24d715..9b2c96f 100644 (file)
@@ -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);