Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_actions.c e_border.c e_border.h e_config.c e_hints.c e_int_border_menu.c Log Message: patches and stuff hanign in mail... =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_actions.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- e_actions.c 11 Oct 2005 20:21:50 -0000 1.40 +++ e_actions.c 1 Dec 2005 07:10:32 -0000 1.41 @@ -367,23 +367,67 @@ E_Border *bd; bd = (E_Border *)obj; - if (bd->maximized) e_border_unmaximize(bd); + /*if (bd->maximized) e_border_unmaximize(bd);*/ + if( bd->maximized != E_MAXIMIZE_NONE && + bd->maximized != E_MAXIMIZE_VERTICAL && + bd->maximized != E_MAXIMIZE_HORIZONTAL ) + { + if( !params ) + e_border_unmaximize(bd); + else + { + if( !strcmp( params, "vertical")) + e_border_unmaximize_vh(bd, E_MAXIMIZE_VERTICAL ); + else if( !strcmp( params, "horizontal")) + e_border_unmaximize_vh(bd, E_MAXIMIZE_HORIZONTAL ); + else + e_border_unmaximize(bd); + } + } else + { + if( !bd->maximized ) { - if (!params) - e_border_maximize(bd, e_config->maximize_policy); - else - { - if (!strcmp(params, "fullscreen")) e_border_maximize(bd, E_MAXIMIZE_FULLSCREEN); - else if (!strcmp(params, "smart")) e_border_maximize(bd, E_MAXIMIZE_SMART); - else if (!strcmp(params, "expand")) e_border_maximize(bd, E_MAXIMIZE_EXPAND); - else if (!strcmp(params, "fill")) e_border_maximize(bd, E_MAXIMIZE_FILL); - else e_border_maximize(bd, e_config->maximize_policy); - } + if (!params) + e_border_maximize(bd, e_config->maximize_policy); + else + { + if (!strcmp(params, "fullscreen")) e_border_maximize(bd, E_MAXIMIZE_FULLSCREEN); + else if (!strcmp(params, "smart")) e_border_maximize(bd, E_MAXIMIZE_SMART); + else if (!strcmp(params, "expand")) e_border_maximize(bd, E_MAXIMIZE_EXPAND); + else if (!strcmp(params, "fill")) e_border_maximize(bd, E_MAXIMIZE_FILL); + else if (!strcmp(params, "vertical")) e_border_maximize(bd, E_MAXIMIZE_VERTICAL); + else if (!strcmp(params, "horizontal")) e_border_maximize(bd, E_MAXIMIZE_HORIZONTAL); + else e_border_maximize(bd, e_config->maximize_policy); + } + } + else + { + if( !params ) + e_border_maximize( bd, e_config->maximize_policy ); + else + { + if( !strcmp(params, "vertical") ) + { + if( bd->maximized == E_MAXIMIZE_VERTICAL ) + e_border_unmaximize_vh(bd, E_MAXIMIZE_VERTICAL ); + else + e_border_maximize(bd, E_MAXIMIZE_VERTICAL ); + } + else if( !strcmp(params, "horizontal") ) + { + if( bd->maximized == E_MAXIMIZE_HORIZONTAL ) + e_border_unmaximize_vh(bd, E_MAXIMIZE_HORIZONTAL ); + else + e_border_maximize(bd, E_MAXIMIZE_HORIZONTAL ); + } + else + e_border_maximize(bd, e_config->maximize_policy); + } } + } } } - /***************************************************************************/ ACT_FN_GO(window_maximized) { @@ -534,7 +578,6 @@ } } } - /***************************************************************************/ ACT_FN_GO(window_move_to) { @@ -1297,7 +1340,7 @@ ACT_GO(window_iconic); ACT_GO(window_maximized_toggle); - + ACT_GO(window_maximized); ACT_GO(window_shaded_toggle); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.464 retrieving revision 1.465 diff -u -3 -r1.464 -r1.465 --- e_border.c 11 Nov 2005 08:15:29 -0000 1.464 +++ e_border.c 1 Dec 2005 07:10:32 -0000 1.465 @@ -1443,7 +1443,14 @@ if ((bd->shaded) || (bd->shading)) return; if (bd->fullscreen) e_border_unfullscreen(bd); - if (!bd->maximized) + if( bd->maximized == E_MAXIMIZE_VERTICAL && max == E_MAXIMIZE_VERTICAL ) + ; // ignore. we are already maximized vertical. + else if( bd->maximized == E_MAXIMIZE_HORIZONTAL && max == E_MAXIMIZE_HORIZONTAL ) + ; // ignore. we are already maximized horizontaly. + else if ( ( bd->maximized == E_MAXIMIZE_NONE || + bd->maximized == E_MAXIMIZE_VERTICAL || + bd->maximized == E_MAXIMIZE_HORIZONTAL ) + ) { int x1, y1, x2, y2; int w, h; @@ -1453,10 +1460,14 @@ bd->need_maximize = 1; return; } - bd->saved.x = bd->x; - bd->saved.y = bd->y; - bd->saved.w = bd->w; - bd->saved.h = bd->h; + + if( !bd->maximized ) // E_MAXIMIZE_NONE + { + bd->saved.x = bd->x; + bd->saved.y = bd->y; + bd->saved.w = bd->w; + bd->saved.h = bd->h; + } e_hints_window_size_set(bd); e_border_raise(bd); @@ -1532,8 +1543,54 @@ e_border_resize_limit(bd, &w, &h); e_border_move_resize(bd, x1, y1, w, h); break; + case E_MAXIMIZE_VERTICAL: + x1 = bd->zone->x; + y1 = bd->zone->y; + x2 = bd->zone->x + bd->zone->w; + y2 = bd->zone->y + bd->zone->h; + + /* walk through all gadgets */ + e_maximize_border_gadman_fill(bd, &x1, &y1, &x2, &y2); + + /* walk through docks and toolbars */ + //e_maximize_border_dock_fit(bd, &x1, &y1, &x2, &y2); + + /* walk through all windows */ + //e_maximize_border_border_fill(bd, &x1, &y1, &x2, &y2); + + x1 = bd->x; + w = bd->w; + h = y2 - y1; + e_border_resize_limit(bd,&w,&h); + e_border_move_resize(bd,x1,y1,w,h); + break; + case E_MAXIMIZE_HORIZONTAL: + x1 = bd->zone->x; + y1 = bd->zone->y; + x2 = bd->zone->x + bd->zone->w; + y2 = bd->zone->y + bd->zone->h; + + /* walk through all gadgets */ + e_maximize_border_gadman_fill(bd, &x1, &y1, &x2, &y2); + + /* walk through docks and toolbars */ + //e_maximize_border_dock_fit(bd, &x1, &y1, &x2, &y2); + + /* walk through all windows */ + //e_maximize_border_border_fill(bd, &x1, &y1, &x2, &y2); + + y1 = bd->y; + h = bd->h; + w = x2 - x1; + e_border_resize_limit(bd,&w,&h); + e_border_move_resize(bd,x1,y1,w,h); + break; } - bd->maximized = max; + if( bd->maximized == E_MAXIMIZE_HORIZONTAL && max == E_MAXIMIZE_VERTICAL || + bd->maximized == E_MAXIMIZE_VERTICAL && max == E_MAXIMIZE_HORIZONTAL ) + bd->maximized = e_config->maximize_policy; + else + bd->maximized = max; if (bd->maximized) e_hints_window_maximized_set(bd, 1); @@ -1542,6 +1599,90 @@ } } +/***sndev : e_border_unmaxmize_vh *******************************************************/ +void +e_border_unmaximize_vh(E_Border *bd, E_Maximize max ) +{ + E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); + if ((bd->shaded) || (bd->shading)) return; + if( max != E_MAXIMIZE_VERTICAL && max != E_MAXIMIZE_HORIZONTAL ) return; + + if( !bd->lock_user_maximize) + { + if( bd->maximized ) + { + switch( bd->maximized ) + { + case E_MAXIMIZE_NONE: + case E_MAXIMIZE_FULLSCREEN: + /* Ignore */ + break; + case E_MAXIMIZE_SMART: + case E_MAXIMIZE_EXPAND: + case E_MAXIMIZE_FILL: + if( max == E_MAXIMIZE_VERTICAL ) + { + bd->maximized = E_MAXIMIZE_NONE; + e_hints_window_maximized_set(bd, 0); + + bd->maximized = E_MAXIMIZE_HORIZONTAL; + e_hints_window_maximized_set(bd, 1); + + e_border_move_resize( bd, bd->x, bd->saved.y, bd->w, bd->saved.h); + e_hints_window_size_unset(bd); + + //edje_object_signal_emit(bd->bg_object, "unmaximize", ""); + } + if( max == E_MAXIMIZE_HORIZONTAL ) + { + bd->maximized = E_MAXIMIZE_NONE; + e_hints_window_maximized_set(bd, 0); + + bd->maximized = E_MAXIMIZE_VERTICAL; + e_hints_window_maximized_set(bd, 1); + + e_border_move_resize( bd, bd->saved.x, bd->y, bd->saved.w, bd->h); + e_hints_window_size_unset(bd); + + //edje_object_signal_emit(bd->bg_object, "unmaximize", ""); + } + break; + case E_MAXIMIZE_VERTICAL: + if( max == E_MAXIMIZE_HORIZONTAL ) + ; // do nothing in this case + if( max == E_MAXIMIZE_VERTICAL ) + { + bd->maximized = E_MAXIMIZE_NONE; + e_hints_window_maximized_set(bd, 0); + + e_border_move_resize( bd, bd->saved.x, bd->saved.y, bd->saved.w, bd->saved.h); + bd->saved.x = bd->saved.y = bd->saved.w = bd->saved.h = 0; + e_hints_window_size_unset(bd); + + edje_object_signal_emit(bd->bg_object, "unmaximize", ""); + } + break; + case E_MAXIMIZE_HORIZONTAL: + if( max == E_MAXIMIZE_VERTICAL ) + ; // do nothing in this case. + if( max == E_MAXIMIZE_HORIZONTAL ) + { + bd->maximized = E_MAXIMIZE_NONE; + e_hints_window_maximized_set(bd, 0); + + e_border_move_resize( bd, bd->saved.x, bd->saved.y, bd->saved.w, bd->saved.h); + bd->saved.x = bd->saved.y = bd->saved.w = bd->saved.h = 0; + e_hints_window_size_unset(bd); + + edje_object_signal_emit(bd->bg_object, "unmaximize", ""); + } + break; + } + } + } +} +/**************************************************************************************/ void e_border_unmaximize(E_Border *bd) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v retrieving revision 1.125 retrieving revision 1.126 diff -u -3 -r1.125 -r1.126 --- e_border.h 6 Nov 2005 08:03:13 -0000 1.125 +++ e_border.h 1 Dec 2005 07:10:32 -0000 1.126 @@ -47,7 +47,9 @@ E_MAXIMIZE_FULLSCREEN, E_MAXIMIZE_SMART, E_MAXIMIZE_EXPAND, - E_MAXIMIZE_FILL + E_MAXIMIZE_FILL, + E_MAXIMIZE_VERTICAL, + E_MAXIMIZE_HORIZONTAL } E_Maximize; typedef enum _E_Fullscreen @@ -358,6 +360,7 @@ E_Config_Dialog *border_remember_dialog; E_Config_Dialog *border_border_dialog; E_Menu *border_stacking_menu; + E_Menu *border_maximize_menu; Evas_List *pending_move_resize; struct { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.126 retrieving revision 1.127 diff -u -3 -r1.126 -r1.127 --- e_config.c 25 Nov 2005 04:10:54 -0000 1.126 +++ e_config.c 1 Dec 2005 07:10:32 -0000 1.127 @@ -763,6 +763,26 @@ eb->params = NULL; e_config->key_bindings = evas_list_append(e_config->key_bindings, eb); + // sndev : start + eb = E_NEW( E_Config_Binding_Key, 1 ); + eb->context = E_BINDING_CONTEXT_ANY; + eb->key = strdup("F10"); + eb->modifiers = E_BINDING_MODIFIER_ALT; + eb->any_mod = 0; + eb->action = strdup( "window_maximized_toggle" ); + eb->params = strdup( "vertical" ); + e_config->key_bindings = evas_list_append( e_config->key_bindings, eb ); + + eb = E_NEW( E_Config_Binding_Key, 1 ); + eb->context = E_BINDING_CONTEXT_ANY; + eb->key = strdup("F10"); + eb->modifiers = E_BINDING_MODIFIER_CTRL; + eb->any_mod = 0; + eb->action = strdup( "window_maximized_toggle" ); + eb->params = strdup( "horizontal" ); + e_config->key_bindings = evas_list_append( e_config->key_bindings, eb ); + // sndev : end + eb = E_NEW(E_Config_Binding_Key, 1); eb->context = E_BINDING_CONTEXT_ANY; eb->key = strdup("r"); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v retrieving revision 1.79 retrieving revision 1.80 diff -u -3 -r1.79 -r1.80 --- e_hints.c 4 Nov 2005 23:30:18 -0000 1.79 +++ e_hints.c 1 Dec 2005 07:10:32 -0000 1.80 @@ -1010,7 +1010,60 @@ void e_hints_window_maximized_set(E_Border *bd, int on) { - if ((!bd->client.netwm.state.maximized_v) && (on)) + + if( on ) + { + if( bd->maximized == E_MAXIMIZE_VERTICAL ) + { + if( !bd->client.netwm.state.maximized_v ) + { + bd->client.netwm.update.state = 1; + bd->client.netwm.state.maximized_v = 1; + bd->changed = 1; + } + } + else if( bd->maximized == E_MAXIMIZE_HORIZONTAL ) + { + if( !bd->client.netwm.state.maximized_h ) + { + bd->client.netwm.update.state = 1; + bd->client.netwm.state.maximized_h = 1; + bd->changed = 1; + } + } + else + { + if( !bd->client.netwm.state.maximized_v ) + { + bd->client.netwm.update.state = 1; + bd->client.netwm.state.maximized_v = 1; + bd->changed = 1; + } + if( !bd->client.netwm.state.maximized_h ) + { + bd->client.netwm.update.state = 1; + bd->client.netwm.state.maximized_h = 1; + bd->changed = 1; + } + } + } + else + { + if( bd->client.netwm.state.maximized_v ) + { + bd->client.netwm.update.state = 1; + bd->client.netwm.state.maximized_v = 0; + bd->changed = 1; + } + if( bd->client.netwm.state.maximized_h ) + { + bd->client.netwm.update.state = 1; + bd->client.netwm.state.maximized_h = 0; + bd->changed = 1; + } + } + + /*if ((!bd->client.netwm.state.maximized_v) && (on)) { bd->client.netwm.update.state = 1; bd->client.netwm.state.maximized_v = 1; @@ -1033,7 +1086,7 @@ bd->client.netwm.update.state = 1; bd->client.netwm.state.maximized_h = 0; bd->changed = 1; - } + }*/ } void =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_border_menu.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- e_int_border_menu.c 18 Nov 2005 07:21:21 -0000 1.7 +++ e_int_border_menu.c 1 Dec 2005 07:10:32 -0000 1.8 @@ -11,6 +11,8 @@ static void _e_border_menu_cb_iconify(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_kill(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_maximize(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_maximize_verticaly(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_border_menu_cb_maximize_horizontaly(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_icon_edit(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_border_menu_cb_stick(void *data, E_Menu *m, E_Menu_Item *mi); @@ -70,6 +72,55 @@ } m = e_menu_new(); + bd->border_maximize_menu = m; + /* Only allow to change layer for windows in "normal" layers */ + if ((!bd->lock_user_maximize) && + ((bd->layer == 50) || (bd->layer == 100) || (bd->layer == 150))) + { + int __fullmaximization = 0; + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximized")); + e_menu_item_check_set(mi, 1); + //e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); + e_menu_item_toggle_set( mi, ( ( (__fullmaximization = bd->maximized && + bd->maximized != E_MAXIMIZE_VERTICAL && + bd->maximized != E_MAXIMIZE_HORIZONTAL)) ? 1 : 0 )); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/maximize"), + "widgets/border/default/maximize"); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximized verticaly")); + e_menu_item_check_set(mi, 1); + //e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); + e_menu_item_toggle_set( mi, ( ( (bd->maximized && + bd->maximized == E_MAXIMIZE_VERTICAL && + bd->maximized != E_MAXIMIZE_HORIZONTAL) || + __fullmaximization ) ? 1 : 0 )); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize_verticaly, bd); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/maximize"), + "widgets/border/default/maximize"); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximized horizontaly")); + e_menu_item_check_set(mi, 1); + //e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); + e_menu_item_toggle_set( mi, ( ( (bd->maximized && + bd->maximized != E_MAXIMIZE_VERTICAL && + bd->maximized == E_MAXIMIZE_HORIZONTAL) || + __fullmaximization ) ? 1 : 0 )); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize_horizontaly, bd); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/maximize"), + "widgets/border/default/maximize"); + } + + m = e_menu_new(); e_object_data_set(E_OBJECT(m), bd); bd->border_menu = m; e_menu_post_deactivate_callback_set(m, _e_border_cb_border_menu_end, NULL); @@ -117,6 +168,14 @@ "widgets/border/default/stacking"), "widgets/border/default/stacking"); + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximize")); + e_menu_item_submenu_set(mi, bd->border_maximize_menu); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/maximize"), + "widgets/border/default/maximize"); + if ((!bd->lock_user_shade) && (!(!strcmp("borderless", bd->client.border.name)))) { mi = e_menu_item_new(m); @@ -130,18 +189,44 @@ "widgets/border/default/shade"); } - if (!bd->lock_user_maximize) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Maximized")); - e_menu_item_check_set(mi, 1); - e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); - e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); - e_menu_item_icon_edje_set(mi, - (char *)e_theme_edje_file_get("base/theme/borders", - "widgets/border/default/maximize"), - "widgets/border/default/maximize"); - } + /*if (!bd->lock_user_maximize) + { + mi = e_menu_item_new(m); + e_menu_item_separator_set(mi, 1); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximized")); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/maximize"), + "widgets/border/default/maximize"); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximized verticaly")); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/maximize"), + "widgets/border/default/maximize"); + + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Maximized horizontaly")); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, (bd->maximized ? 1 : 0)); + e_menu_item_callback_set(mi, _e_border_menu_cb_maximize, bd); + e_menu_item_icon_edje_set(mi, + (char *)e_theme_edje_file_get("base/theme/borders", + "widgets/border/default/maximize"), + "widgets/border/default/maximize"); + + mi = e_menu_item_new(m); + e_menu_item_separator_set(mi, 1); + }*/ if (!bd->lock_user_sticky) { @@ -270,6 +355,12 @@ bd->border_stacking_menu = NULL; was_menu = 1; } + if( bd->border_maximize_menu ) + { + e_object_del(E_OBJECT(bd->border_maximize_menu)); + bd->border_maximize_menu = NULL; + was_menu = 1; + } if (bd->border_menu) { e_object_del(E_OBJECT(bd->border_menu)); @@ -365,11 +456,41 @@ bd = data; if (!bd->lock_user_maximize) { - if (bd->maximized) e_border_unmaximize(bd); + if (bd->maximized != E_MAXIMIZE_NONE && + bd->maximized != E_MAXIMIZE_VERTICAL && + bd->maximized != E_MAXIMIZE_HORIZONTAL ) e_border_unmaximize(bd); else e_border_maximize(bd, e_config->maximize_policy); } } +/*** sndev : menu_cb_miximize_verticaly callback **************/ +static void +_e_border_menu_cb_maximize_verticaly(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + + bd = data; + if (!bd->lock_user_maximize) + { + if (bd->maximized && bd->maximized != E_MAXIMIZE_HORIZONTAL ) + e_border_unmaximize_vh(bd, E_MAXIMIZE_VERTICAL ); + else e_border_maximize(bd, E_MAXIMIZE_VERTICAL ); + } +} +/*** sndev : menu_cb_miximize_verticaly callback **************/ +static void +_e_border_menu_cb_maximize_horizontaly(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Border *bd; + bd = data; + if (!bd->lock_user_maximize) + { + if (bd->maximized && bd->maximized != E_MAXIMIZE_VERTICAL ) + e_border_unmaximize_vh(bd, E_MAXIMIZE_HORIZONTAL ); + else e_border_maximize(bd, E_MAXIMIZE_HORIZONTAL ); + } +} +/*************************************************************/ static void _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi) { ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs