hi all, here i attach a couple of patches:
ecore_directfb: it supports now the key string, so enterminus can be
used with directfb :)
ecore_evas_directfb: some structs have changed names, use the new ones.


PS:
1. i had these patches on my hd for a long, but is hard to track the
changes of ecore cvs and submit a correct patch (maybe this are also
bad).
2. my coding style is different than yours, every time a send a patch
i see that the style is changed, i think theres an app that can change
the c style (i dont remember the name), maybe you can give the
parameters of it, so i can change the style before sending the patch.
Only in /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/: 
.#Ecore_DirectFB.h.1.1
Only in /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/: 
.cvsignore
Only in /usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/: 
CVS
diff -ur 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/Ecore_DirectFB.h
 ./Ecore_DirectFB.h
--- 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/Ecore_DirectFB.h
       2005-10-25 14:53:22.000000000 +0200
+++ ./Ecore_DirectFB.h  2005-11-01 16:49:20.000000000 +0100
@@ -45,7 +45,7 @@
 
 #ifndef _ECORE_DIRECTFB_WINDOW_PREDEF
 typedef struct _Ecore_DirectFB_Window                  Ecore_DirectFB_Window;
-#endif   
+#endif
 typedef struct _Ecore_DirectFB_Cursor                  Ecore_DirectFB_Cursor;
 
 typedef struct _Ecore_DirectFB_Event_Key_Down          
Ecore_DirectFB_Event_Key_Down; 
@@ -83,8 +83,8 @@
 
 struct _Ecore_DirectFB_Event_Key_Down /** DirectFB Key Down event */
 {
-       char   *keyname; /**< The name of the key that was released */
-       char   *keysymbol; /**< The logical symbol of the key that was pressed 
*/
+       char   *name; /**< The name of the key that was released */
+       char   *string; /**< The logical symbol of the key that was pressed */
        char   *key_compose; /**< The UTF-8 string conversion if any */
        unsigned int time;
        DFBWindowID win;
@@ -92,8 +92,8 @@
    
 struct _Ecore_DirectFB_Event_Key_Up /** DirectFB Key Up event */
 {
-       char   *keyname; /**< The name of the key that was released */
-       char   *keysymbol; /**< The logical symbol of the key that was pressed 
*/
+       char   *name; /**< The name of the key that was released */
+       char   *string; /**< The logical symbol of the key that was pressed */
        char   *key_compose; /**< The UTF-8 string conversion if any */
        unsigned int time;
        DFBWindowID win;
diff -ur 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb.c
 ./ecore_directfb.c
--- 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb.c
       2005-10-15 12:37:37.000000000 +0200
+++ ./ecore_directfb.c  2005-11-01 17:07:00.000000000 +0100
@@ -7,7 +7,11 @@
 /* ecore_directfb */
 /******************/
 /* About */
-/* with this you can create windows of directfb and handle events through 
ecore */
+/* with this you can create windows of directfb and handle events through ecore
+ * TODO:
+ * - handle all event types
+ * - 
+ * */
 
 static int _ecore_directfb_key_symbols_count = 
sizeof(_ecore_directfb_key_symbols)/sizeof(Ecore_DirectFB_Key_Symbols);
 static int _ecore_directfb_init_count = 0;
@@ -64,8 +68,8 @@
    Ecore_DirectFB_Event_Key_Up *e;
    
    e = ev;
-   free(e->keyname);
-   if (e->keysymbol) free(e->keysymbol);
+   if(e->name) free(e->name);
+   if (e->string) free(e->string);
    if (e->key_compose) free(e->key_compose);
    free(e);
 }
@@ -76,8 +80,8 @@
    Ecore_DirectFB_Event_Key_Up *e;
    
    e = ev;
-   free(e->keyname);
-   if (e->keysymbol) free(e->keysymbol);
+   if(e->name) free(e->name);
+   if (e->string) free(e->string);
    if (e->key_compose) free(e->key_compose);
    free(e);
 }
@@ -153,7 +157,7 @@
 
        Ecore_DirectFB_Event_Key_Down *e;
        unsigned int key_symbol;
-       char *key_name;
+       struct keymap *k;
        
        e = calloc(1, sizeof(Ecore_DirectFB_Event_Key_Down));
        
@@ -161,31 +165,31 @@
        {
                case DFEC_INPUT:
                        key_symbol = evt->input.key_symbol;
-                       key_name = 
ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol);
+                       k = ecore_hash_get(_ecore_directfb_key_symbols_hash, 
&key_symbol);
 
-                       if(!key_name) 
+                       if(!k) 
                        {
                                printf("error en el numero, %0X\n", 
evt->input.key_symbol);
                                return;
                        }
-                       e->keyname = strdup(key_name);
-                       e->keysymbol = strdup(key_name);
+                       e->name = strdup(k->name);
+                       e->string = strdup(k->string);
                        e->key_compose = NULL;
                        e->win = _ecore_directfb_fullscreen_window_id;
                        e->time = 0;
-               break;
+                       break;
              
                case DFEC_WINDOW:
                        key_symbol = evt->window.key_symbol;
-                       key_name = 
ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol);
+                       k = ecore_hash_get(_ecore_directfb_key_symbols_hash, 
&key_symbol);
 
-                       if(!key_name) 
+                       if(!k) 
                        {
                                printf("error en el numero, %0X\n", 
evt->window.key_symbol);
                                return;
                        }
-                       e->keyname = strdup(key_name);
-                       e->keysymbol = strdup(key_name);
+                       e->name = strdup(k->name);
+                       e->string = strdup(k->string);
                        e->key_compose = NULL;
                        e->win = evt->window.window_id;
                        e->time = 0;
@@ -201,7 +205,7 @@
 {
        Ecore_DirectFB_Event_Key_Up *e;
        unsigned int key_symbol;
-       char *key_name;
+       struct keymap *k;
        
        e = calloc(1, sizeof(Ecore_DirectFB_Event_Key_Up));
        
@@ -209,15 +213,16 @@
        {
                case DFEC_INPUT:
                        key_symbol = evt->input.key_symbol;
-                       key_name = 
ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol);
+                       k = ecore_hash_get(_ecore_directfb_key_symbols_hash, 
&key_symbol);
 
-                       if(!key_name) 
+                       
+                       if(!k) 
                        {
                                printf("error en el numero, %0X\n", 
evt->input.key_symbol);
                                return;
                        }
-                       e->keyname = strdup(key_name);
-                       e->keysymbol = strdup(key_name);
+                       e->name = strdup(k->name);
+                       e->string = strdup(k->string);
                        e->key_compose = NULL;
                        e->win = _ecore_directfb_fullscreen_window_id;
                        e->time = 0;
@@ -225,15 +230,15 @@
              
                case DFEC_WINDOW:
                        key_symbol = evt->window.key_symbol;
-                       key_name = 
ecore_hash_get(_ecore_directfb_key_symbols_hash, &key_symbol);
+                       k = ecore_hash_get(_ecore_directfb_key_symbols_hash, 
&key_symbol);
 
-                       if(!key_name) 
+                       if(!k) 
                        {
                                printf("error en el numero, %0X\n", 
evt->window.key_symbol);
                                return;
                        }
-                       e->keyname = strdup(key_name);
-                       e->keysymbol = strdup(key_name);
+                       e->name = strdup(k->name);
+                       e->string = strdup(k->string);
                        e->key_compose = NULL;
                        e->win = evt->window.window_id;
                        e->time = 0;
@@ -697,7 +702,11 @@
        _ecore_directfb_key_symbols_hash = 
ecore_hash_new(_ecore_directfb_hash_create,_ecore_directfb_hash_compare);
        for(i=0; i<_ecore_directfb_key_symbols_count; i++)
        {
-               ecore_hash_set(_ecore_directfb_key_symbols_hash, 
&_ecore_directfb_key_symbols[i].keycode, 
_ecore_directfb_key_symbols[i].keysymbol);
+               struct keymap *k;
+               k = malloc(sizeof(struct keymap));
+               k->name = _ecore_directfb_key_symbols[i].name;
+               k->string = _ecore_directfb_key_symbols[i].string;
+               ecore_hash_set(_ecore_directfb_key_symbols_hash, 
&_ecore_directfb_key_symbols[i].id, k);
        }
        /* create the hash for the windows(key = windowid, val = 
Ecore_DirectFB_Window struct) */
        return _ecore_directfb_init_count;
@@ -719,7 +728,10 @@
        /* free the key symbol names hash */
        for(i=0; i<_ecore_directfb_key_symbols_count; i++)
        {
-               ecore_hash_remove(_ecore_directfb_key_symbols_hash, 
&_ecore_directfb_key_symbols[i].keycode);
+               struct keymap *k;
+               k = ecore_hash_get(_ecore_directfb_key_symbols_hash, 
&_ecore_directfb_key_symbols[i].id);
+               ecore_hash_remove(_ecore_directfb_key_symbols_hash, 
&_ecore_directfb_key_symbols[i].id);
+               free(k);
        }
        
        if(_ecore_directfb_fullscreen_window_id)
Only in ./: ecore_directfb.diff
diff -ur 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb_keys.h
 ./ecore_directfb_keys.h
--- 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb_keys.h
  2005-10-25 14:53:22.000000000 +0200
+++ ./ecore_directfb_keys.h     2005-09-27 00:49:23.000000000 +0200
@@ -1,131 +1,131 @@
 typedef struct _Ecore_DirectFB_Key_Symbols Ecore_DirectFB_Key_Symbols;
-
 struct _Ecore_DirectFB_Key_Symbols
 {
-       char *keysymbol;
-       unsigned int keycode;
+       char *string;
+       char *name;
+       unsigned int id;
 } _ecore_directfb_key_symbols[] = {
-       {"BackSpace", DIKS_BACKSPACE},
-       {"Tab", DIKS_TAB},
-       {"Return", DIKS_RETURN},
-       {"Cancel", DIKS_CANCEL},
-       {"Escape", DIKS_ESCAPE},
-       {"space", DIKS_SPACE},
-       {"exclam", DIKS_EXCLAMATION_MARK},
-       {"quotedbl", DIKS_QUOTATION},
-       {"numbersign", DIKS_NUMBER_SIGN},
-       {"dollar", DIKS_DOLLAR_SIGN},
-       {"percent", DIKS_PERCENT_SIGN},
-       {"ampersand", DIKS_AMPERSAND},
-       {"apostrophe", DIKS_APOSTROPHE},
-       {"parenleft", DIKS_PARENTHESIS_LEFT},
-       {"parenright", DIKS_PARENTHESIS_RIGHT},
-       {"asterisk", DIKS_ASTERISK},
-       {"plus", DIKS_PLUS_SIGN},
-       {"comma", DIKS_COMMA},
-       {"minus", DIKS_MINUS_SIGN},
-       {"period", DIKS_PERIOD},
-       {"slash", DIKS_SLASH},
-       {"0", DIKS_0},
-       {"1", DIKS_1},
-       {"2", DIKS_2},
-       {"3", DIKS_3},
-       {"4", DIKS_4},
-       {"5", DIKS_5},
-       {"6", DIKS_6},
-       {"7", DIKS_7},
-       {"8", DIKS_8},
-       {"9", DIKS_9},
-       {"colon", DIKS_COLON},
-       {"semicolon", DIKS_SEMICOLON},
-       {"less", DIKS_LESS_THAN_SIGN},
-       {"equal", DIKS_EQUALS_SIGN},
-       {"greater", DIKS_GREATER_THAN_SIGN},
-       {"question", DIKS_QUESTION_MARK},
-       {"at", DIKS_AT},
-       {"A", DIKS_CAPITAL_A },
-       {"B", DIKS_CAPITAL_B },
-       {"C", DIKS_CAPITAL_C },
-       {"D", DIKS_CAPITAL_D },
-       {"E", DIKS_CAPITAL_E },
-       {"F", DIKS_CAPITAL_F },
-       {"G", DIKS_CAPITAL_G },
-       {"H", DIKS_CAPITAL_H },
-       {"I", DIKS_CAPITAL_I },
-       {"J", DIKS_CAPITAL_J },
-       {"K", DIKS_CAPITAL_K },
-       {"L", DIKS_CAPITAL_L },
-       {"M", DIKS_CAPITAL_M },
-       {"N", DIKS_CAPITAL_N },
-       {"O", DIKS_CAPITAL_O },
-       {"P", DIKS_CAPITAL_P },
-       {"Q", DIKS_CAPITAL_Q },
-       {"R", DIKS_CAPITAL_R },
-       {"S", DIKS_CAPITAL_S },
-       {"T", DIKS_CAPITAL_T },
-       {"U", DIKS_CAPITAL_U },
-       {"V", DIKS_CAPITAL_V },
-       {"W", DIKS_CAPITAL_W },
-       {"X", DIKS_CAPITAL_X },
-       {"Y", DIKS_CAPITAL_Y },
-       {"Z", DIKS_CAPITAL_Z },
-       {"bracketleft", DIKS_SQUARE_BRACKET_LEFT },
-       {"backslash", DIKS_BACKSLASH },
-       {"bracketright", DIKS_SQUARE_BRACKET_RIGHT },
-       {"asciicircum", DIKS_CIRCUMFLEX_ACCENT },
-       {"underscore", DIKS_UNDERSCORE },
-       {"grave", DIKS_GRAVE_ACCENT},
-       {"a", DIKS_SMALL_A },
-       {"b", DIKS_SMALL_B },
-       {"c", DIKS_SMALL_C },
-       {"d", DIKS_SMALL_D },
-       {"e", DIKS_SMALL_E },
-       {"f", DIKS_SMALL_F },
-       {"g", DIKS_SMALL_G },
-       {"h", DIKS_SMALL_H },
-       {"i", DIKS_SMALL_I },
-       {"j", DIKS_SMALL_J },
-       {"k", DIKS_SMALL_K },
-       {"l", DIKS_SMALL_L },
-       {"m", DIKS_SMALL_M },
-       {"n", DIKS_SMALL_N },
-       {"o", DIKS_SMALL_O },
-       {"p", DIKS_SMALL_P },
-       {"q", DIKS_SMALL_Q },
-       {"r", DIKS_SMALL_R },
-       {"s", DIKS_SMALL_S },
-       {"t", DIKS_SMALL_T },
-       {"u", DIKS_SMALL_U },
-       {"v", DIKS_SMALL_V },
-       {"w", DIKS_SMALL_W },
-       {"x", DIKS_SMALL_X },
-       {"y", DIKS_SMALL_Y },
-       {"z", DIKS_SMALL_Z },
-       {"braceleft", DIKS_CURLY_BRACKET_LEFT },
-       {"bar", DIKS_VERTICAL_BAR },
-       {"braceright", DIKS_CURLY_BRACKET_RIGHT },
-       {"asciitilde", DIKS_TILDE },
-       {"Delete", DIKS_DELETE },
-       {"Left", DIKS_CURSOR_LEFT },
-       {"Right", DIKS_CURSOR_RIGHT},
-       {"Up", DIKS_CURSOR_UP},
-       {"Down", DIKS_CURSOR_DOWN},
-       {"Insert", DIKS_INSERT},
-       {"Home", DIKS_HOME},
-       {"End", DIKS_END},
-       {"Page_Up", DIKS_PAGE_UP},
-       {"Page_Down", DIKS_PAGE_DOWN},
-       {"Print", DIKS_PRINT},
-       {"Pause", DIKS_PAUSE},
+       {"\010", "BackSpace",DIKS_BACKSPACE},
+       {"\011", "Tab", DIKS_TAB},
+       {"\015", "Return", DIKS_RETURN},
+       {"", "Cancel", DIKS_CANCEL},
+       {"", "Escape", DIKS_ESCAPE},
+       {" ", "space", DIKS_SPACE},
+       {"!", "exclam", DIKS_EXCLAMATION_MARK},
+       {"\"", "quotedbl", DIKS_QUOTATION},
+       {"#", "numbersign", DIKS_NUMBER_SIGN},
+       {"$", "dollar", DIKS_DOLLAR_SIGN},
+       {"%", "percent", DIKS_PERCENT_SIGN},
+       {"&", "ampersand", DIKS_AMPERSAND},
+       {"'", "apostrophe", DIKS_APOSTROPHE},
+       {"(", "parenleft", DIKS_PARENTHESIS_LEFT},
+       {")", "parenright", DIKS_PARENTHESIS_RIGHT},
+       {"*", "asterisk", DIKS_ASTERISK},
+       {"+", "plus", DIKS_PLUS_SIGN},
+       {",", "comma", DIKS_COMMA},
+       {"-", "minus", DIKS_MINUS_SIGN},
+       {".", "period", DIKS_PERIOD},
+       {"/", "slash", DIKS_SLASH},
+       {"0", "0", DIKS_0},
+       {"1", "1", DIKS_1},
+       {"2", "2", DIKS_2},
+       {"3", "3", DIKS_3},
+       {"4", "4", DIKS_4},
+       {"5", "5", DIKS_5},
+       {"6", "6", DIKS_6},
+       {"7", "7", DIKS_7},
+       {"8", "8", DIKS_8},
+       {"9", "9", DIKS_9},
+       {":", "colon", DIKS_COLON},
+       {";", "semicolon", DIKS_SEMICOLON},
+       {"<", "less", DIKS_LESS_THAN_SIGN},
+       {"=", "equal", DIKS_EQUALS_SIGN},
+       {">", "greater", DIKS_GREATER_THAN_SIGN},
+       {"?", "question", DIKS_QUESTION_MARK},
+       {"@", "at", DIKS_AT},
+       {"A", "A", DIKS_CAPITAL_A },
+       {"B", "B", DIKS_CAPITAL_B },
+       {"C", "C", DIKS_CAPITAL_C },
+       {"D", "D", DIKS_CAPITAL_D },
+       {"E", "E", DIKS_CAPITAL_E },
+       {"F", "F", DIKS_CAPITAL_F },
+       {"G", "G", DIKS_CAPITAL_G },
+       {"H", "H", DIKS_CAPITAL_H },
+       {"I", "I", DIKS_CAPITAL_I },
+       {"J", "J", DIKS_CAPITAL_J },
+       {"K", "K", DIKS_CAPITAL_K },
+       {"L", "L", DIKS_CAPITAL_L },
+       {"M", "M", DIKS_CAPITAL_M },
+       {"N", "N", DIKS_CAPITAL_N },
+       {"O", "O", DIKS_CAPITAL_O },
+       {"P", "P", DIKS_CAPITAL_P },
+       {"Q", "Q", DIKS_CAPITAL_Q },
+       {"R", "R", DIKS_CAPITAL_R },
+       {"S", "S", DIKS_CAPITAL_S },
+       {"T", "T", DIKS_CAPITAL_T },
+       {"U", "U", DIKS_CAPITAL_U },
+       {"V", "V", DIKS_CAPITAL_V },
+       {"W", "W", DIKS_CAPITAL_W },
+       {"X", "X", DIKS_CAPITAL_X },
+       {"Y", "Y", DIKS_CAPITAL_Y },
+       {"Z", "Z", DIKS_CAPITAL_Z },
+       {"[", "bracketleft", DIKS_SQUARE_BRACKET_LEFT },
+       {"\\", "backslash", DIKS_BACKSLASH },
+       {"]", "bracketright", DIKS_SQUARE_BRACKET_RIGHT },
+       {"^", "asciicircum", DIKS_CIRCUMFLEX_ACCENT },
+       {"_", "underscore", DIKS_UNDERSCORE },
+       {"`", "grave", DIKS_GRAVE_ACCENT},
+       {"a", "a", DIKS_SMALL_A },
+       {"b","b", DIKS_SMALL_B },
+       {"c","c", DIKS_SMALL_C },
+       {"d","d", DIKS_SMALL_D },
+       {"e","e", DIKS_SMALL_E },
+       {"f","f", DIKS_SMALL_F },
+       {"g","g", DIKS_SMALL_G },
+       {"h","h", DIKS_SMALL_H },
+       {"i","i", DIKS_SMALL_I },
+       {"j","j", DIKS_SMALL_J },
+       {"k","k", DIKS_SMALL_K },
+       {"l","l", DIKS_SMALL_L },
+       {"m","m", DIKS_SMALL_M },
+       {"n","n", DIKS_SMALL_N },
+       {"o", "o", DIKS_SMALL_O },
+       {"p", "p", DIKS_SMALL_P },
+       {"q", "q", DIKS_SMALL_Q },
+       {"r", "r", DIKS_SMALL_R },
+       {"s", "s", DIKS_SMALL_S },
+       {"t", "t", DIKS_SMALL_T },
+       {"u", "u", DIKS_SMALL_U },
+       {"v", "v", DIKS_SMALL_V },
+       {"w", "w", DIKS_SMALL_W },
+       {"x", "x", DIKS_SMALL_X },
+       {"y", "y", DIKS_SMALL_Y },
+       {"z", "z", DIKS_SMALL_Z },
+       {"{", "braceleft",DIKS_CURLY_BRACKET_LEFT },
+       {"|", "bar", DIKS_VERTICAL_BAR },
+       {"}", "braceright", DIKS_CURLY_BRACKET_RIGHT },
+       {"~", "asciitilde", DIKS_TILDE },
+       {"\177", "Delete", DIKS_DELETE },
+       {"", "Left", DIKS_CURSOR_LEFT },
+       {"", "Right", DIKS_CURSOR_RIGHT},
+       {"", "Up", DIKS_CURSOR_UP},
+       {"", "Down", DIKS_CURSOR_DOWN},
+       {"", "Insert", DIKS_INSERT},
+       {"", "Home", DIKS_HOME},
+       {"", "End", DIKS_END},
+       {"", "Page_Up", DIKS_PAGE_UP},
+       {"", "Page_Down", DIKS_PAGE_DOWN},
+       {"", "Print", DIKS_PRINT},
+       {"", "Pause", DIKS_PAUSE},
        /* ok */
-       {"Select", DIKS_SELECT},
+       {"", "Select",DIKS_SELECT},
        /* goto */
-       {"Clear", DIKS_CLEAR},
+       {"", "Clear", DIKS_CLEAR},
        /* power */
        /* power 2 */
        /* option */
-       {"Menu", DIKS_MENU},
-       {"Help", DIKS_HELP},
+       {"", "Menu",DIKS_MENU},
+       {"", "Help",DIKS_HELP},
        /* info */
        /* time */
        /* vendor */
@@ -134,48 +134,48 @@
        /* channel */
        /* favorites */
        /* hasta next */
-       {"Next", DIKS_NEXT},
-       {"Begin", DIKS_BEGIN},
+       {"", "Next",DIKS_NEXT},
+       {"", "Begin",DIKS_BEGIN},
        /* digits */
        /* teen */
        /* twen */
-       {"Break", DIKS_BREAK},
+       {"", "Break", DIKS_BREAK},
        /* exit */
        /* setup */
-       {"upleftcorner", DIKS_CURSOR_LEFT_UP },
-       {"lowleftcorner", DIKS_CURSOR_LEFT_DOWN },
-       {"uprightcorner", DIKS_CURSOR_UP_RIGHT },
-       {"lowrightcorner", DIKS_CURSOR_DOWN_RIGHT },
-       {"F1", DIKS_F1},
-       {"F2", DIKS_F2},
-       {"F3", DIKS_F3},
-       {"F4", DIKS_F4},
-       {"F5", DIKS_F5},
-       {"F6", DIKS_F6},
-       {"F7", DIKS_F7},
-       {"F8", DIKS_F8},
-       {"F9", DIKS_F9},
-       {"F10", DIKS_F10},
-       {"F11", DIKS_F11},
-       {"F12", DIKS_F12},
+       {"", "upleftcorner", DIKS_CURSOR_LEFT_UP },
+       {"", "lowleftcorner", DIKS_CURSOR_LEFT_DOWN },
+       {"", "uprightcorner", DIKS_CURSOR_UP_RIGHT },
+       {"", "lowrightcorner",DIKS_CURSOR_DOWN_RIGHT },
+       {"", "F1",DIKS_F1},
+       {"", "F2",DIKS_F2},
+       {"", "F3",DIKS_F3},
+       {"", "F4",DIKS_F4},
+       {"", "F5",DIKS_F5},
+       {"", "F6",DIKS_F6},
+       {"", "F7",DIKS_F7},
+       {"", "F8",DIKS_F8},
+       {"", "F9",DIKS_F9},
+       {"", "F10",DIKS_F10},
+       {"", "F11",DIKS_F11},
+       {"", "F12",DIKS_F12},
        /* this are only mapped to one, not left right */
-       {"Shift_L", DIKS_SHIFT},
-       /*{"Shift_R", 0xFFE2}, */
-       {"Control_L", DIKS_CONTROL},
-       /*{"Control_R", 0xFFE4}, */
-       {"Meta_L", DIKS_META},
-       /* {"Meta_R", 0xFFE8}, */
-       {"Alt_L", DIKS_ALT},
-       {"Alt_R", DIKS_ALTGR},
-       {"Super_L", DIKS_SUPER},
-       /*{"Super_R", 0xFFEC}, */
-       {"Hyper_L", DIKS_HYPER},
-       /*{"Hyper_R", 0xFFEE}, */
+       {"", "Shift_L", DIKS_SHIFT},
+       /*{"Shift_R",0xFFE2},*/
+       {"", "Control_L", DIKS_CONTROL},
+       /*{"Control_R",0xFFE4},*/
+       {"", "Meta_L", DIKS_META},
+       /* {"Meta_R",0xFFE8},*/
+       {"", "Alt_L", DIKS_ALT},
+       {"", "Alt_R", DIKS_ALTGR},
+       {"", "Super_L", DIKS_SUPER},
+       /*{"Super_R",0xFFEC},*/
+       {"", "Hyper_L", DIKS_HYPER},
+       /*{"Hyper_R",0xFFEE},*/
                
-       {"Caps_Lock", DIKS_CAPS_LOCK},
-       {"Num_Lock", DIKS_NUM_LOCK},
-       {"Scroll_Lock", DIKS_SCROLL_LOCK},
+       {"", "Caps_Lock", DIKS_CAPS_LOCK},
+       {"", "Num_Lock", DIKS_NUM_LOCK},
+       {"", "Scroll_Lock", DIKS_SCROLL_LOCK},
        /* not included the dead keys */
        /* not included the custom keys */
-       {"VoidSymbol", DIKS_NULL}
+       {"", "VoidSymbol", DIKS_NULL}
 };
diff -ur 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb_private.h
 ./ecore_directfb_private.h
--- 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_directfb/ecore_directfb_private.h
       2005-10-15 12:37:37.000000000 +0200
+++ ./ecore_directfb_private.h  2005-09-27 00:01:30.000000000 +0200
@@ -8,4 +8,8 @@
           }                                                            \
      }
 
-
+struct keymap
+{
+       char *name;
+       char *string;
+};
--- 
/usr/portage/distfiles/cvs-src/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_directfb.c
      2005-10-15 12:37:37.000000000 +0200
+++ ecore_evas_directfb.c       2005-09-27 01:04:58.000000000 +0200
@@ -21,52 +21,53 @@
 static void
 _ecore_evas_directfb_render(Ecore_Evas *ee)
 {
-   if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
-   Evas_List *updates;
-   updates = evas_render_updates(ee->evas);
-   if (updates)
-     {
-       DFBRegion region;
-       IDirectFBSurface *surface;
-       Evas_List *l;
-       surface = ee->engine.directfb.window->surface;
-       for (l = updates; l; l = l->next)
-         {
-            Evas_Rectangle *rect;
-            rect = l->data;
-            region.x1 = rect->x;
-            region.y1 = rect->y;
-            region.x2 = rect->x + rect->w - 1;
-            region.y2 = rect->y + rect->h - 1;
-            surface->Flip(surface, &region,DSFLIP_BLIT);
-         }
-       evas_render_updates_free(updates);
-     }
+
+       if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
+       Evas_List *updates;
+       updates = evas_render_updates(ee->evas);
+       if (updates)
+       {
+               DFBRegion region;
+               IDirectFBSurface *surface;
+               Evas_List *l;
+               surface = ee->engine.directfb.window->surface;
+               for (l = updates; l; l = l->next)
+               {
+                       Evas_Rectangle *rect;
+                       rect = l->data;
+                       region.x1 = rect->x;
+                       region.y1 = rect->y;
+                       region.x2 = rect->x + rect->w - 1;
+                       region.y2 = rect->y + rect->h - 1;
+                       surface->Flip(surface, &region,DSFLIP_BLIT);
+               }
+               evas_render_updates_free(updates);
+       }
 }
 
 static int
 _ecore_evas_directfb_idle_enter(void *data __UNUSED__)
 {
-   Ecore_List2 *l;
-   double t1 = 0.;
-   double t2 = 0.;
-   
-   if (_ecore_evas_fps_debug)
-     {
-       t1 = ecore_time_get();
-     }
-   for (l = (Ecore_List2 *)ecore_evases; l; l = l->next)
-     {
-       Ecore_Evas *ee;
-       ee = (Ecore_Evas *)l;
-       _ecore_evas_directfb_render(ee);
-     }
-   if (_ecore_evas_fps_debug)
-     {
-       t2 = ecore_time_get();
-       _ecore_evas_fps_debug_rendertime_add(t2 - t1);
-     }
-   return 1;
+       Ecore_List2 *l;
+       double t1 = 0.;
+       double t2 = 0.;
+   
+       if (_ecore_evas_fps_debug)
+       {
+               t1 = ecore_time_get();
+       }
+       for (l = (Ecore_List2 *)ecore_evases; l; l = l->next)
+       {
+               Ecore_Evas *ee;
+               ee = (Ecore_Evas *)l;
+               _ecore_evas_directfb_render(ee);
+       }
+       if (_ecore_evas_fps_debug)
+       {
+               t2 = ecore_time_get();
+               _ecore_evas_fps_debug_rendertime_add(t2 - t1);
+       }
+       return 1;
 }
 
 static char *
@@ -92,216 +93,215 @@
 static Ecore_Evas *
 _ecore_evas_directfb_match(DFBWindowID win)
 {    
-   Ecore_Evas *ee;
-   
-   ee = evas_hash_find(ecore_evases_hash, 
_ecore_evas_directfb_winid_str_get(win));
-   if ((ee) && (ee->delete_idle_enterer)) return NULL;
-   return ee;
+       Ecore_Evas *ee;
+
+       ee = evas_hash_find(ecore_evases_hash, 
_ecore_evas_directfb_winid_str_get(win));
+       if ((ee) && (ee->delete_idle_enterer)) return NULL;
+       return ee;
 }
        
 static void 
 _ecore_evas_directfb_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned 
int timestamp)
 {
-   ee->mouse.x = x;
-   ee->mouse.y = y;
-   
-   if (ee->prop.cursor.object)
-     {
-       evas_object_show(ee->prop.cursor.object);
-       if (ee->rotation == 0)
-         evas_object_move(ee->prop.cursor.object,x - ee->prop.cursor.hot.x,y - 
ee->prop.cursor.hot.y);
-       else if (ee->rotation == 90)
-         evas_object_move(ee->prop.cursor.object,
+       ee->mouse.x = x;
+       ee->mouse.y = y;
+       
+       if (ee->prop.cursor.object)
+       {
+               evas_object_show(ee->prop.cursor.object);
+               if (ee->rotation == 0)
+                       evas_object_move(ee->prop.cursor.object,x - 
ee->prop.cursor.hot.x,y - ee->prop.cursor.hot.y);
+               else if (ee->rotation == 90)
+                       evas_object_move(ee->prop.cursor.object,
                            ee->h - y - 1 - ee->prop.cursor.hot.x,
                            x - ee->prop.cursor.hot.y);
-       else if (ee->rotation == 180)
-         evas_object_move(ee->prop.cursor.object,
+               else if (ee->rotation == 180)
+                       evas_object_move(ee->prop.cursor.object,
                            ee->w - x - 1 - ee->prop.cursor.hot.x,
                            ee->h - y - 1 - ee->prop.cursor.hot.y);
-       else if (ee->rotation == 270)
-         evas_object_move(ee->prop.cursor.object,
+               else if (ee->rotation == 270)
+               evas_object_move(ee->prop.cursor.object,
                            y - ee->prop.cursor.hot.x,
                            ee->w - x - 1 - ee->prop.cursor.hot.y);
-     }
-   if (ee->rotation == 0)
-     evas_event_feed_mouse_move(ee->evas, x, y, timestamp, NULL);
-   else if (ee->rotation == 90)
-     evas_event_feed_mouse_move(ee->evas, ee->h - y - 1, x, timestamp, NULL);
-   else if (ee->rotation == 180)
-     evas_event_feed_mouse_move(ee->evas, ee->w - x - 1, ee->h - y - 1, 
timestamp, NULL);
-   else if (ee->rotation == 270)
-     evas_event_feed_mouse_move(ee->evas, y, ee->w - x - 1, timestamp, NULL);
+       }
+       if (ee->rotation == 0)
+               evas_event_feed_mouse_move(ee->evas, x, y, timestamp, NULL);
+       else if (ee->rotation == 90)
+               evas_event_feed_mouse_move(ee->evas, ee->h - y - 1, x, 
timestamp, NULL);
+       else if (ee->rotation == 180)
+               evas_event_feed_mouse_move(ee->evas, ee->w - x - 1, ee->h - y - 
1, timestamp, NULL);
+       else if (ee->rotation == 270)
+               evas_event_feed_mouse_move(ee->evas, y, ee->w - x - 1, 
timestamp, NULL);
 }
        
 
 static int 
 _ecore_evas_directfb_event_key_down(void *data __UNUSED__, int type 
__UNUSED__, void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Key_Down *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   evas_event_feed_key_down(ee->evas, e->keyname, e->keysymbol, 
e->key_compose, NULL, e->time, NULL);
-   return 1;
-   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Key_Down *e;
+
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       evas_event_feed_key_down(ee->evas, e->name, NULL, e->string, 
e->key_compose, e->time, NULL);
+       return 1;
+       
 }
 
 static int
 _ecore_evas_directfb_event_key_up(void *data __UNUSED__, int type __UNUSED__, 
void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Key_Up *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   evas_event_feed_key_up(ee->evas, e->keyname, e->keysymbol, e->key_compose, 
NULL, e->time, NULL);
-   return 1;   
-   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Key_Up *e;
+
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       evas_event_feed_key_up(ee->evas, e->name, NULL, e->string, 
e->key_compose, e->time, NULL);
+       return 1;       
+
 }
 
 static int
 _ecore_evas_directfb_event_motion(void *data __UNUSED__, int type __UNUSED__, 
void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Motion *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   _ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
-   return 1;   
-   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Motion *e;
+
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+        _ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
+       return 1;       
+       
 }
 
 static int
 _ecore_evas_directfb_event_button_down(void *data __UNUSED__, int type 
__UNUSED__, void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Button_Down *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   // _ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
-   evas_event_feed_mouse_down(ee->evas, e->button, EVAS_BUTTON_NONE, e->time, 
NULL);
-   return 1;   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Button_Down *e;
+
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       // _ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
+       evas_event_feed_mouse_down(ee->evas, e->button, EVAS_BUTTON_NONE, 
e->time, NULL);
+       return 1;       
 }
 
 static int
 _ecore_evas_directfb_event_button_up(void *data __UNUSED__, int type 
__UNUSED__, void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Button_Up *e;
-   Evas_Button_Flags flags = EVAS_BUTTON_NONE;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
-   evas_event_feed_mouse_up(ee->evas, e->button, flags, e->time, NULL);
-   return 1;   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Button_Up *e;
+       Evas_Button_Flags flags = EVAS_BUTTON_NONE;
+       
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
+       evas_event_feed_mouse_up(ee->evas, e->button, flags, e->time, NULL);
+       return 1;       
 }
 
 static int
 _ecore_evas_directfb_event_enter(void *data __UNUSED__, int type __UNUSED__, 
void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Enter *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   evas_event_feed_mouse_in(ee->evas, e->time, NULL);
-   //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
-   return 1;   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Enter *e;
+       
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       evas_event_feed_mouse_in(ee->evas, e->time, NULL);
+       //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
+       return 1;       
 }
-
 static int
 _ecore_evas_directfb_event_leave(void *data __UNUSED__, int type __UNUSED__, 
void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Leave *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   evas_event_feed_mouse_out(ee->evas, e->time, NULL);
-   //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
-   if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
-   if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
-   return 1;   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Leave *e;
+       
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       evas_event_feed_mouse_out(ee->evas, e->time, NULL);
+       //_ecore_evas_directfb_mouse_move_process(ee, e->x, e->y, e->time);
+       if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee);
+       if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object);
+       return 1;       
 }
 
 static int
 _ecore_evas_directfb_event_wheel(void *data __UNUSED__, int type __UNUSED__, 
void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Wheel *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   evas_event_feed_mouse_wheel(ee->evas, e->direction, e->z, e->time, NULL);
-   return 1;   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Wheel *e;
+       
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       evas_event_feed_mouse_wheel(ee->evas, e->direction, e->z, e->time, 
NULL);
+       return 1;       
 }
 
 static int
 _ecore_evas_directfb_event_got_focus(void *data __UNUSED__, int type 
__UNUSED__, void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Got_Focus *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   ee->prop.focused = 1;
-   return 1;   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Got_Focus *e;
+       
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       ee->prop.focused = 1;
+       return 1;       
 }
 
 static int
 _ecore_evas_directfb_event_lost_focus(void *data __UNUSED__, int type 
__UNUSED__, void *event)
 {
-   Ecore_Evas *ee;
-   Ecore_DirectFB_Event_Lost_Focus *e;
-   
-   e = event;
-   ee = _ecore_evas_directfb_match(e->win);
-   
-   if (!ee) return 1; /* pass on event */
-   ee->prop.focused = 0;
-   return 1;   
+       Ecore_Evas *ee;
+       Ecore_DirectFB_Event_Lost_Focus *e;
+       
+       e = event;
+       ee = _ecore_evas_directfb_match(e->win);
+       
+       if (!ee) return 1; /* pass on event */
+       ee->prop.focused = 0;
+       return 1;       
 }
 
        
 int
 _ecore_evas_directfb_shutdown(void)
 {
-   _ecore_evas_init_count--;
-   if (_ecore_evas_init_count == 0)
-     {
-       int i;
-       
-       while (ecore_evases) _ecore_evas_free(ecore_evases);
-       for (i = 0; i < 8; i++)
-         ecore_event_handler_del(ecore_evas_event_handlers[i]);
-       ecore_idle_enterer_del(ecore_evas_directfb_idle_enterer);
-       ecore_evas_directfb_idle_enterer = NULL;
-       if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
-     }
-   if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
-   return _ecore_evas_init_count;
+       _ecore_evas_init_count--;
+       if (_ecore_evas_init_count == 0)
+       {
+               int i;
+               
+               while (ecore_evases) _ecore_evas_free(ecore_evases);
+               for (i = 0; i < 8; i++)
+                       ecore_event_handler_del(ecore_evas_event_handlers[i]);
+               ecore_idle_enterer_del(ecore_evas_directfb_idle_enterer);
+               ecore_evas_directfb_idle_enterer = NULL;
+               if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
+       }
+       if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
+       return _ecore_evas_init_count;
 }
        
 
@@ -311,27 +311,27 @@
 int
 _ecore_evas_directfb_init(void)
 {
-   _ecore_evas_init_count++;
-   if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
-   if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1;
-   ecore_evas_directfb_idle_enterer = 
ecore_idle_enterer_add(_ecore_evas_directfb_idle_enter, NULL);
-   if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init();
-   
-   ecore_evas_event_handlers[0]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_DOWN, 
_ecore_evas_directfb_event_key_down, NULL);
-   ecore_evas_event_handlers[1]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_UP, 
_ecore_evas_directfb_event_key_up, NULL);
-   ecore_evas_event_handlers[2]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_BUTTON_DOWN, 
_ecore_evas_directfb_event_button_down, NULL);
-   ecore_evas_event_handlers[3]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_BUTTON_UP, 
_ecore_evas_directfb_event_button_up, NULL);
-   ecore_evas_event_handlers[4]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_MOTION, 
_ecore_evas_directfb_event_motion, NULL);
-   ecore_evas_event_handlers[5]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_ENTER, 
_ecore_evas_directfb_event_enter, NULL);
-   ecore_evas_event_handlers[6]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_LEAVE, 
_ecore_evas_directfb_event_leave, NULL);
-   ecore_evas_event_handlers[7]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_WHEEL, 
_ecore_evas_directfb_event_wheel, NULL);
-   ecore_evas_event_handlers[8]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_GOT_FOCUS, 
_ecore_evas_directfb_event_got_focus, NULL);
-   ecore_evas_event_handlers[9]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_LOST_FOCUS, 
_ecore_evas_directfb_event_lost_focus, NULL);
-   ecore_evas_event_handlers[10]  = NULL;
-   ecore_evas_event_handlers[11]  = NULL;
-   ecore_evas_event_handlers[12]  = NULL;
-   
-   return _ecore_evas_init_count;
+       _ecore_evas_init_count++;
+       if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
+       if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1;
+       ecore_evas_directfb_idle_enterer = 
ecore_idle_enterer_add(_ecore_evas_directfb_idle_enter, NULL);
+       if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init();
+       
+       ecore_evas_event_handlers[0]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_DOWN, 
_ecore_evas_directfb_event_key_down, NULL);
+       ecore_evas_event_handlers[1]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_UP, 
_ecore_evas_directfb_event_key_up, NULL);
+       ecore_evas_event_handlers[2]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_BUTTON_DOWN, 
_ecore_evas_directfb_event_button_down, NULL);
+       ecore_evas_event_handlers[3]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_BUTTON_UP, 
_ecore_evas_directfb_event_button_up, NULL);
+       ecore_evas_event_handlers[4]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_MOTION, 
_ecore_evas_directfb_event_motion, NULL);
+       ecore_evas_event_handlers[5]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_ENTER, 
_ecore_evas_directfb_event_enter, NULL);
+       ecore_evas_event_handlers[6]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_LEAVE, 
_ecore_evas_directfb_event_leave, NULL);
+       ecore_evas_event_handlers[7]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_WHEEL, 
_ecore_evas_directfb_event_wheel, NULL);
+       ecore_evas_event_handlers[8]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_GOT_FOCUS, 
_ecore_evas_directfb_event_got_focus, NULL);
+       ecore_evas_event_handlers[9]  = 
ecore_event_handler_add(ECORE_DIRECTFB_EVENT_LOST_FOCUS, 
_ecore_evas_directfb_event_lost_focus, NULL);
+       ecore_evas_event_handlers[10]  = NULL;
+       ecore_evas_event_handlers[11]  = NULL;
+       ecore_evas_event_handlers[12]  = NULL;
+
+       return _ecore_evas_init_count;
 }
 
 /* engine functions */
@@ -340,198 +340,200 @@
 static void
 _ecore_evas_directfb_free(Ecore_Evas *ee)
 {
-   ecore_directfb_window_del(ee->engine.directfb.window);
-   free(ee->engine.directfb.window);
-   ecore_evases_hash = evas_hash_del(ecore_evases_hash, 
_ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee);
-   ecore_evases = _ecore_list2_remove(ecore_evases, ee);   
-   _ecore_evas_directfb_shutdown();
-   ecore_directfb_shutdown();
+   
+       ecore_directfb_window_del(ee->engine.directfb.window);
+       free(ee->engine.directfb.window);
+       ecore_evases_hash = evas_hash_del(ecore_evases_hash, 
_ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee);
+       ecore_evases = _ecore_list2_remove(ecore_evases, ee);   
+       _ecore_evas_directfb_shutdown();
+       ecore_directfb_shutdown();
 }
 
 static void
 _ecore_evas_directfb_move(Ecore_Evas *ee, int x, int y)
 {
-   ecore_directfb_window_move(ee->engine.directfb.window, x, y);
+       ecore_directfb_window_move(ee->engine.directfb.window, x, y);
 }
 
 static void 
 _ecore_evas_directfb_resize(Ecore_Evas *ee, int w, int h)
 {
-   if ((w == ee->w) && (h == ee->h)) return;
-   ecore_directfb_window_resize(ee->engine.directfb.window, w, h);
-   ee->w = w;
-   ee->h = h;
-   if ((ee->rotation == 90) || (ee->rotation == 270))
-     {
-       evas_output_size_set(ee->evas, ee->h, ee->w);
-       evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
-     }
-   else
-     {
-       evas_output_size_set(ee->evas, ee->w, ee->h);
-       evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
-     }
+       if ((w == ee->w) && (h == ee->h)) return;
+       ecore_directfb_window_resize(ee->engine.directfb.window, w, h);
+       ee->w = w;
+       ee->h = h;
+       if ((ee->rotation == 90) || (ee->rotation == 270))
+       {
+               evas_output_size_set(ee->evas, ee->h, ee->w);
+               evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
+       }
+       else
+       {
+               evas_output_size_set(ee->evas, ee->w, ee->h);
+               evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+       }
 }
 
 static void
 _ecore_evas_directfb_focus_set(Ecore_Evas *ee, int on __UNUSED__)
 {
-   ecore_directfb_window_focus(ee->engine.directfb.window);
+       ecore_directfb_window_focus(ee->engine.directfb.window);
+       
 }
 
 static void
 _ecore_evas_directfb_hide(Ecore_Evas *ee)
 {
-   ecore_directfb_window_hide(ee->engine.directfb.window);
-   ee->should_be_visible = 0;
+       ecore_directfb_window_hide(ee->engine.directfb.window);
+       ee->should_be_visible = 0;
 }
 
 static void
 _ecore_evas_directfb_show(Ecore_Evas *ee)
 {
-   ecore_directfb_window_show(ee->engine.directfb.window);
-   ee->should_be_visible = 1;
+       ecore_directfb_window_show(ee->engine.directfb.window);
+       ee->should_be_visible = 1;
 }
 
 static void
 _ecore_evas_directfb_shaped_set(Ecore_Evas *ee, int shaped)
 {
-   if (((ee->shaped) && (shaped)) || ((!ee->shaped) && (!shaped)))
-     return;
-   ee->shaped = shaped;
-   if(ee->shaped)
-     ecore_directfb_window_shaped_set(ee->engine.directfb.window, 1);
-   else
-     ecore_directfb_window_shaped_set(ee->engine.directfb.window, 0);
-   
+       if (((ee->shaped) && (shaped)) || ((!ee->shaped) && (!shaped)))
+               return;
+       ee->shaped = shaped;
+       if(ee->shaped)
+               ecore_directfb_window_shaped_set(ee->engine.directfb.window, 1);
+       else
+               ecore_directfb_window_shaped_set(ee->engine.directfb.window, 0);
+               
 }
 
 static void
 _ecore_evas_directfb_cursor_set(Ecore_Evas *ee, const char *file, int layer 
__UNUSED__, int hot_x, int hot_y)
 {
-   int x, y;
-   
-   if (!file)
-     {
-       if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
+       int x, y;
+       
+       if (!file)
+       {
+               if (ee->prop.cursor.object) 
evas_object_del(ee->prop.cursor.object);
+               if (ee->prop.cursor.file) free(ee->prop.cursor.file);
+               ee->prop.cursor.object = NULL;
+               ee->prop.cursor.file = NULL;
+               ee->prop.cursor.layer = 0;
+               ee->prop.cursor.hot.x = 0;
+               ee->prop.cursor.hot.y = 0;
+               ecore_directfb_window_cursor_show(ee->engine.directfb.window, 
1);
+               return;
+
+       }
+       ecore_directfb_window_cursor_show(ee->engine.directfb.window, 0);
+       if (!ee->prop.cursor.object) ee->prop.cursor.object = 
evas_object_image_add(ee->evas);
        if (ee->prop.cursor.file) free(ee->prop.cursor.file);
-       ee->prop.cursor.object = NULL;
-       ee->prop.cursor.file = NULL;
-       ee->prop.cursor.layer = 0;
-       ee->prop.cursor.hot.x = 0;
-       ee->prop.cursor.hot.y = 0;
-       ecore_directfb_window_cursor_show(ee->engine.directfb.window, 1);
-       return;
-       
-     }
-   ecore_directfb_window_cursor_show(ee->engine.directfb.window, 0);
-   if (!ee->prop.cursor.object) ee->prop.cursor.object = 
evas_object_image_add(ee->evas);
-   if (ee->prop.cursor.file) free(ee->prop.cursor.file);
-   ee->prop.cursor.file = strdup(file);
-   ee->prop.cursor.layer = layer;
-   ee->prop.cursor.hot.x = hot_x;
-   ee->prop.cursor.hot.y = hot_y;
-   evas_pointer_output_xy_get(ee->evas, &x, &y);
-   evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
-   evas_object_color_set(ee->prop.cursor.object, 255, 255, 255, 255);
-   evas_object_move(ee->prop.cursor.object,x - ee->prop.cursor.hot.x,y - 
ee->prop.cursor.hot.y);
-   evas_object_image_file_set(ee->prop.cursor.object, ee->prop.cursor.file, 
NULL);
-   evas_object_image_size_get(ee->prop.cursor.object, &x, &y);
-   evas_object_resize(ee->prop.cursor.object, x, y);
-   evas_object_image_fill_set(ee->prop.cursor.object, 0, 0, x, y);
-   evas_object_pass_events_set(ee->prop.cursor.object, 1);
-   if (evas_pointer_inside_get(ee->evas))
-     evas_object_show(ee->prop.cursor.object);
+       ee->prop.cursor.file = strdup(file);
+       ee->prop.cursor.layer = layer;
+       ee->prop.cursor.hot.x = hot_x;
+       ee->prop.cursor.hot.y = hot_y;
+       evas_pointer_output_xy_get(ee->evas, &x, &y);
+       evas_object_layer_set(ee->prop.cursor.object, ee->prop.cursor.layer);
+       evas_object_color_set(ee->prop.cursor.object, 255, 255, 255, 255);
+       evas_object_move(ee->prop.cursor.object,x - ee->prop.cursor.hot.x,y - 
ee->prop.cursor.hot.y);
+       evas_object_image_file_set(ee->prop.cursor.object, 
ee->prop.cursor.file, NULL);
+       evas_object_image_size_get(ee->prop.cursor.object, &x, &y);
+       evas_object_resize(ee->prop.cursor.object, x, y);
+       evas_object_image_fill_set(ee->prop.cursor.object, 0, 0, x, y);
+       evas_object_pass_events_set(ee->prop.cursor.object, 1);
+       if (evas_pointer_inside_get(ee->evas))
+               evas_object_show(ee->prop.cursor.object);
 }
 
 static void
 _ecore_evas_directfb_fullscreen_set(Ecore_Evas *ee, int on)
 {
-   Evas_Engine_Info_DirectFB *einfo;
-   int w;
-   int h;
-   int resized = 0;
-   
-   if (((ee->prop.fullscreen) && (on)) || ((!ee->prop.fullscreen) && (!on))) 
-     return;
-   
-   if (on)
-     ecore_directfb_window_fullscreen_set(ee->engine.directfb.window, 1);
-   else
-     ecore_directfb_window_fullscreen_set(ee->engine.directfb.window, 0);
-   /* set the new size of the evas */
-   ecore_directfb_window_size_get(ee->engine.directfb.window, &w, &h);
-   if( (ee->w != w) || (ee->h != h))
-     {
-       resized = 1;
-       ee->w = w;
-       ee->h = h;
-       if ((ee->rotation == 90) || (ee->rotation == 270))
-         {
-            evas_output_size_set(ee->evas, ee->h, ee->w);
-            evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
-         }
+       Evas_Engine_Info_DirectFB *einfo;
+       int w;
+       int h;
+       int resized = 0;
+       
+       if (((ee->prop.fullscreen) && (on)) || ((!ee->prop.fullscreen) && 
(!on))) 
+               return;
+       
+       if (on)
+               
ecore_directfb_window_fullscreen_set(ee->engine.directfb.window, 1);
        else
-         {
-            evas_output_size_set(ee->evas, ee->w, ee->h);
-            evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
-         }
-     }
-   einfo = (Evas_Engine_Info_DirectFB *)evas_engine_info_get(ee->evas);
-   if(einfo)
-     {
-       einfo->info.surface = ee->engine.directfb.window->surface;
-       evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
-     }
-   ee->prop.fullscreen = on;
-   if(resized)
-     {
-       if(ee->func.fn_resize) ee->func.fn_resize(ee);
-     }
+               
ecore_directfb_window_fullscreen_set(ee->engine.directfb.window, 0);
+       /* set the new size of the evas */
+       ecore_directfb_window_size_get(ee->engine.directfb.window, &w, &h);
+       if( (ee->w != w) || (ee->h != h))
+       {
+               resized = 1;
+               ee->w = w;
+               ee->h = h;
+               if ((ee->rotation == 90) || (ee->rotation == 270))
+               {
+                       evas_output_size_set(ee->evas, ee->h, ee->w);
+                       evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
+               }
+               else
+               {
+                       evas_output_size_set(ee->evas, ee->w, ee->h);
+                       evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
+               }
+       }
+       einfo = (Evas_Engine_Info_DirectFB *)evas_engine_info_get(ee->evas);
+       if(einfo)
+       {
+               einfo->info.surface = ee->engine.directfb.window->surface;
+               evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+       }
+       ee->prop.fullscreen = on;
+       if(resized)
+       {
+               if(ee->func.fn_resize) ee->func.fn_resize(ee);
+       }
 }
 
 
 static const Ecore_Evas_Engine_Func _ecore_directfb_engine_func =
 {
-   _ecore_evas_directfb_free,  /* free an ecore_evas */
-     NULL,                             /* cb resize */
-     NULL,                             /* cb move */
-     NULL,                             /* cb show */
-     NULL,                             /* cb hide */
-     NULL,                             /* cb delete request */
-     NULL,                             /* cb destroy */
-     NULL,                             /* cb focus in */
-     NULL,                             /* cb focus out */
-     NULL,                             /* cb mouse in */
-     NULL,                             /* cb mouse out */
-     NULL,                             /* cb pre render */
-     NULL,                             /* cb post render */
-     _ecore_evas_directfb_move,        /* move */
-     _ecore_evas_directfb_resize,      /* resize */
-     NULL,                             /* move resize */
-     NULL,//_ecore_evas_directfb_rotation_set,/* rotation */
-     _ecore_evas_directfb_shaped_set,/* shaped */
-     _ecore_evas_directfb_show,        /* show */
-     _ecore_evas_directfb_hide,        /* hide */
-     NULL,                             /* raise */
-     NULL,                             /* lower */
-     NULL,                             /* title set */
-     NULL,                             /* name class set */
-     NULL,                             /* size min */
-     NULL,                             /* size max */
-     NULL,                             /* size base */
-     NULL,                             /* size step */
-     _ecore_evas_directfb_cursor_set,/* cursor set */
-     NULL,                             /* layer set */
-     _ecore_evas_directfb_focus_set,   /* focus */
-     NULL,                             /* iconified */
-     NULL,                             /* borderless */
-     NULL,                             /* override */
-     NULL,                             /* maximized */
-     _ecore_evas_directfb_fullscreen_set,/* fullscreen */
-     NULL,                             /* avoid damage */
-     NULL,                             /* withdrawn */
-     NULL                              /* sticky */
+       _ecore_evas_directfb_free,      /* free an ecore_evas */
+       NULL,                           /* cb resize */
+       NULL,                           /* cb move */
+       NULL,                           /* cb show */
+       NULL,                           /* cb hide */
+       NULL,                           /* cb delete request */
+       NULL,                           /* cb destroy */
+       NULL,                           /* cb focus in */
+       NULL,                           /* cb focus out */
+       NULL,                           /* cb mouse in */
+       NULL,                           /* cb mouse out */
+       NULL,                           /* cb pre render */
+       NULL,                           /* cb post render */
+       _ecore_evas_directfb_move,      /* move */
+       _ecore_evas_directfb_resize,    /* resize */
+       NULL,                           /* move resize */
+       NULL,//_ecore_evas_directfb_rotation_set,/* rotation */
+       _ecore_evas_directfb_shaped_set,/* shaped */
+       _ecore_evas_directfb_show,      /* show */
+       _ecore_evas_directfb_hide,      /* hide */
+       NULL,                           /* raise */
+       NULL,                           /* lower */
+       NULL,                           /* title set */
+       NULL,                           /* name class set */
+       NULL,                           /* size min */
+       NULL,                           /* size max */
+       NULL,                           /* size base */
+       NULL,                           /* size step */
+       _ecore_evas_directfb_cursor_set,/* cursor set */
+       NULL,                           /* layer set */
+       _ecore_evas_directfb_focus_set, /* focus */
+       NULL,                           /* iconified */
+       NULL,                           /* borderless */
+       NULL,                           /* override */
+       NULL,                           /* maximized */
+       _ecore_evas_directfb_fullscreen_set,/* fullscreen */
+       NULL,                           /* avoid damage */
+       NULL,                           /* withdrawn */
+       NULL                            /* sticky */
 };
 #endif
 
@@ -541,11 +543,7 @@
 Ecore_DirectFB_Window *
 ecore_evas_directfb_window_get(Ecore_Evas *ee)
 {
-#ifdef BUILD_ECORE_EVAS_DIRECTFB
-   return ee->engine.directfb.window;
-#else
-   return NULL;
-#endif   
+       return ee->engine.directfb.window;
 }
 
        
@@ -553,71 +551,71 @@
 ecore_evas_directfb_new(const char *disp_name, int windowed, int x, int y, int 
w, int h)
 {
 #ifdef BUILD_ECORE_EVAS_DIRECTFB
-   Evas_Engine_Info_DirectFB *einfo;
-   Ecore_Evas *ee;
-   
-   Ecore_DirectFB_Window *window;
-   
-   
-   int rmethod;
-   
-   rmethod = evas_render_method_lookup("directfb");
-   if (!rmethod) return NULL;
-   if (!ecore_directfb_init(disp_name)) return NULL;
-   ee = calloc(1, sizeof(Ecore_Evas));
-   if (!ee) return NULL;
-   
-   ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
-   _ecore_evas_directfb_init();
-   ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_directfb_engine_func;
-   
-   ee->driver = strdup("directfb");
-   if (disp_name) ee->name = strdup(disp_name);
-   
-   if (w < 1) w = 1;
-   
-   if (h < 1) h = 1;
-   
-   ee->rotation = 0;
-   ee->visible = 1;
-   ee->x = x;
-   ee->y = y;
-   ee->w = w;
-   ee->h = h;
-   ee->prop.layer = 1; 
-   ee->prop.fullscreen = 0;
-   /*ee->prop.max.w = 0;
-    ee->prop.max.h = 0;
-    ee->prop.layer = 0;
-    ee->prop.focused = 1;
-    ee->prop.borderless = 0;
-    ee->prop.override = 1;
-    ee->prop.maximized = 0;
-    ee->prop.withdrawn = 0;
-    ee->prop.sticky = 0;*/
-   //ee->prop.cursor.object = 0;
+       Evas_Engine_Info_DirectFB *einfo;
+       Ecore_Evas *ee;
+       
+       Ecore_DirectFB_Window *window;
+
+       
+       int rmethod;
+       
+       rmethod = evas_render_method_lookup("directfb");
+       if (!rmethod) return NULL;
+       if (!ecore_directfb_init(disp_name)) return NULL;
+       ee = calloc(1, sizeof(Ecore_Evas));
+       if (!ee) return NULL;
+
+       ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
+       _ecore_evas_directfb_init();
+       ee->engine.func = (Ecore_Evas_Engine_Func 
*)&_ecore_directfb_engine_func;
    
-   /* init evas here */
-   ee->evas = evas_new();
-   evas_output_method_set(ee->evas, rmethod);
-   evas_output_size_set(ee->evas, w, h);
-   evas_output_viewport_set(ee->evas, 0, 0, w, h);
-   einfo = (Evas_Engine_Info_DirectFB *)evas_engine_info_get(ee->evas);
+       ee->driver = strdup("directfb");
+       if (disp_name) ee->name = strdup(disp_name);
+       
+       if (w < 1) w = 1;
    
-   window = ecore_directfb_window_new(x,y,w,h);
-   ee->engine.directfb.window = window;
-   if (einfo)
-     {
-       einfo->info.dfb = ecore_directfb_interface_get();
-       einfo->info.surface = window->surface;
-       einfo->info.flags = DSDRAW_BLEND;
-       evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
-     }
-   ecore_evases = _ecore_list2_prepend(ecore_evases, ee);
-   ecore_evases_hash = evas_hash_add(ecore_evases_hash, 
_ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee);
+       if (h < 1) h = 1;
    
-   return ee;
+       ee->rotation = 0;
+       ee->visible = 1;
+       ee->x = x;
+       ee->y = y;
+       ee->w = w;
+       ee->h = h;
+       ee->prop.layer = 1;     
+       ee->prop.fullscreen = 0;
+       /*ee->prop.max.w = 0;
+       ee->prop.max.h = 0;
+       ee->prop.layer = 0;
+       ee->prop.focused = 1;
+       ee->prop.borderless = 0;
+       ee->prop.override = 1;
+       ee->prop.maximized = 0;
+       ee->prop.withdrawn = 0;
+       ee->prop.sticky = 0;*/
+       //ee->prop.cursor.object = 0;
+               
+       /* init evas here */
+       ee->evas = evas_new();
+       evas_output_method_set(ee->evas, rmethod);
+       evas_output_size_set(ee->evas, w, h);
+       evas_output_viewport_set(ee->evas, 0, 0, w, h);
+       einfo = (Evas_Engine_Info_DirectFB *)evas_engine_info_get(ee->evas);
+       
+       window = ecore_directfb_window_new(x,y,w,h);
+       ee->engine.directfb.window = window;
+       if (einfo)
+       {
+               einfo->info.dfb = ecore_directfb_interface_get();
+               einfo->info.surface = window->surface;
+               einfo->info.flags = DSDRAW_BLEND;
+               evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+       }
+       ecore_evases = _ecore_list2_prepend(ecore_evases, ee);
+       ecore_evases_hash = evas_hash_add(ecore_evases_hash, 
_ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee);
+
+       return ee;
 #else
-   return NULL;
+       return NULL;
 #endif   
 }

Reply via email to