From: Carsten H. (T. R. <ra...@ra...> - 2012-03-08 23:47:36
|
On Thu, 8 Mar 2012 21:19:23 +0100 Leif Middelschulte <lei...@gm...> said: > 2012/3/8 Sebastian Dransfeld <sd...@ta...>: > > I didn't quite understand this. Do you mean to determine the position > > from the e_layout when you DnD the outputs? > Yes, that's what I meant. You'll probably get gaps if you calculate > new positions using e_layout. dont do an EXACT calculation. just figure out if you drag which edges are where (ie screen 2 is to the RIGHT of screen 1), and if its aligned to the top, middle or bottom (if screen 2 or 1 is smaller than the other). floating point wont help you here at all if u decied to do it "Exactly" anyway as people can only move things around in whole pixel coordinates anyway so that's always "less accurate" than the real pixels u represent by whatever you scale down factor is (1/8th? or so). > > > > The reason I'm looking into this is because I need to > > activate/deactivate outputs when I dock/undock my laptop. It doesn't > > seem like the current code supports it, or does it? > Hm... yes and no. > Yes, logic it there. Basically all you need to do is configure your > setup somehow and then trigger e_randr_save_setup(). It stores your > setup based on EDID information and automatically tries to restore it > when all saved EDIDs are available again. > But you can't trigger that snapshot funcitonality using conf_randr > now, since its 'change detection' logic is broken. > I'll hopefully repair it sometime the next days. > > > > S. > > > > On 03/08/2012 12:47 PM, Leif Middelschulte wrote: > >> In case you plan to work further on the conf_randr stuff, I just want > >> to let you know, that I guess we/I need to put back the recursive > >> position determine logic. I had a reason, when I implemented it in the > >> first place, I just forgot it/was too tired. > >> > >> Determing positions based on scaling their representations' position > >> obviously won't work since the representations can't be set to > >> floating point positions. > >> > >> Anyway, thanks for the effort you put into this :-) > >> > >> 2012/3/8 Enlightenment SVN<no-...@en...>: > >>> Log: > >>> e: formatting > >>> > >>> Author: englebass > >>> Date: 2012-03-08 03:37:54 -0800 (Thu, 08 Mar 2012) > >>> New Revision: 69055 > >>> Trac: http://trac.enlightenment.org/e/changeset/69055 > >>> > >>> Modified: > >>> trunk/e/src/bin/e_randr.c trunk/e/src/bin/e_randr_11_serialization.c > >>> trunk/e/src/bin/e_randr_12.c trunk/e/src/bin/e_randr_12_crtc.c > >>> trunk/e/src/bin/e_randr_12_output.c > >>> trunk/e/src/bin/e_randr_12_serialization.c > >>> trunk/e/src/bin/e_randr_serialization.c > >>> trunk/e/src/modules/conf_randr/e_int_config_randr_arrangement.c > >>> > >>> Modified: trunk/e/src/bin/e_randr.c > >>> =================================================================== > >>> --- trunk/e/src/bin/e_randr.c 2012-03-08 11:35:07 UTC (rev 69054) > >>> +++ trunk/e/src/bin/e_randr.c 2012-03-08 11:37:54 UTC (rev 69055) > >>> @@ -123,7 +123,7 @@ > >>> return EINA_FALSE; > >>> } > >>> > >>> - static Eina_Bool > >>> +static Eina_Bool > >>> _e_event_config_loaded_cb(void *data __UNUSED__, int type, void *ev > >>> __UNUSED__) { > >>> if (type != E_EVENT_CONFIG_LOADED) return EINA_TRUE; > >>> @@ -133,7 +133,7 @@ > >>> return EINA_FALSE; > >>> } > >>> > >>> - static void > >>> +static void > >>> _event_listeners_add(void) > >>> { > >>> _event_handlers = eina_list_append(_event_handlers, > >>> ecore_event_handler_add(E_EVENT_CONFIG_LOADED, _e_event_config_loaded_cb, > >>> NULL)); @@ -144,7 +144,7 @@ } > >>> } > >>> > >>> - static void > >>> +static void > >>> _try_restore_configuration(void) > >>> { > >>> if (e_config->randr_serialized_setup) > >>> > >>> Modified: trunk/e/src/bin/e_randr_11_serialization.c > >>> =================================================================== > >>> --- trunk/e/src/bin/e_randr_11_serialization.c 2012-03-08 11:35:07 UTC > >>> (rev 69054) +++ trunk/e/src/bin/e_randr_11_serialization.c 2012-03-08 > >>> 11:37:54 UTC (rev 69055) @@ -10,7 +10,7 @@ > >>> > >>> //New helper functions > >>> > >>> - E_Randr_Serialized_Setup_11 * > >>> +E_Randr_Serialized_Setup_11 * > >>> _serialized_setup_11_new(void) > >>> { > >>> E_Randr_Serialized_Setup_11 *ss; > >>> @@ -32,7 +32,7 @@ > >>> } > >>> > >>> //Update/value set helper functions > >>> - E_Randr_Serialized_Setup_11 * > >>> +E_Randr_Serialized_Setup_11 * > >>> _serialized_setup_11_update(E_Randr_Serialized_Setup_11 *ss_11) > >>> { > >>> Ecore_X_Randr_Screen_Size_MM *size; > >>> @@ -56,7 +56,7 @@ > >>> } > >>> > >>> //Free helper functions > >>> - void > >>> +void > >>> _e_randr_serialized_setup_11_free(E_Randr_Serialized_Setup_11 *ss11) > >>> { > >>> free(ss11); > >>> @@ -68,7 +68,7 @@ > >>> _e_randr_serialized_setup_11_free(ss_11); > >>> } > >>> > >>> - Eina_Bool > >>> +Eina_Bool > >>> _11_try_restore_configuration(void) > >>> { > >>> Ecore_X_Randr_Screen_Size_MM *stored_size, *size; > >>> @@ -92,7 +92,7 @@ > >>> return EINA_FALSE; > >>> } > >>> > >>> - void > >>> +void > >>> _11_store_configuration(E_Randr_Configuration_Store_Modifier modifier) > >>> { > >>> if (e_config->randr_serialized_setup->serialized_setup_11) > >>> > >>> Modified: trunk/e/src/bin/e_randr_12.c > >>> =================================================================== > >>> --- trunk/e/src/bin/e_randr_12.c 2012-03-08 11:35:07 UTC (rev > >>> 69054) +++ trunk/e/src/bin/e_randr_12.c 2012-03-08 11:37:54 UTC > >>> (rev 69055) @@ -31,7 +31,7 @@ > >>> * @return array of E_Randr_Screen_Info_12 elements, or in case not all > >>> could > >>> * be created or parameter 'nrequested'==0, NULL > >>> */ > >>> - static E_Randr_Screen_Info_12 * > >>> +static E_Randr_Screen_Info_12 * > >>> _screen_info_12_new(void) > >>> { > >>> E_Randr_Screen_Info_12 *randr_info_12 = NULL; > >>> @@ -65,7 +65,7 @@ > >>> return randr_info_12; > >>> } > >>> > >>> - static Eina_Bool > >>> +static Eina_Bool > >>> _structs_init(void) > >>> { > >>> //Output stuff > >>> @@ -119,7 +119,7 @@ > >>> > >>> //Set value / retrieval helper functions > >>> > >>> - static void > >>> +static void > >>> _crtcs_init(void) > >>> { > >>> E_Randr_Crtc_Info *crtc = NULL; > >>> @@ -131,7 +131,7 @@ > >>> _crtc_refs_set(crtc); > >>> } > >>> > >>> - static void > >>> +static void > >>> _outputs_init(void) > >>> { > >>> E_Randr_Output_Info *output = NULL; > >>> @@ -147,7 +147,7 @@ > >>> } > >>> } > >>> > >>> - static void > >>> +static void > >>> _screen_primary_output_assign(E_Randr_Output_Info *removed) > >>> { > >>> Eina_List *iter; > >>> @@ -173,7 +173,7 @@ > >>> /** > >>> * @param screen_info the screen info to be freed. > >>> */ > >>> - void > >>> +void > >>> _12_screen_info_free(E_Randr_Screen_Info_12 *screen_info) > >>> { > >>> Ecore_X_Randr_Mode_Info *mode_info; > >>> @@ -213,7 +213,7 @@ > >>> * > >>> * ******************************************** > >>> */ > >>> - Ecore_X_Randr_Mode_Info * > >>> +Ecore_X_Randr_Mode_Info * > >>> _12_screen_info_mode_info_get(const Ecore_X_Randr_Mode mode) > >>> { > >>> Eina_List *iter; > >>> @@ -228,7 +228,7 @@ > >>> return NULL; > >>> } > >>> > >>> - E_Randr_Output_Info * > >>> +E_Randr_Output_Info * > >>> _12_screen_info_output_info_get(const Ecore_X_Randr_Output output) > >>> { > >>> Eina_List *iter; > >>> @@ -243,7 +243,7 @@ > >>> return NULL; > >>> } > >>> > >>> - E_Randr_Crtc_Info * > >>> +E_Randr_Crtc_Info * > >>> _12_screen_info_crtc_info_get(const Ecore_X_Randr_Crtc crtc) > >>> { > >>> Eina_List *iter; > >>> @@ -258,7 +258,7 @@ > >>> return NULL; > >>> } > >>> > >>> - Eina_Bool > >>> +Eina_Bool > >>> _12_screen_info_edid_is_available(const E_Randr_Edid_Hash *hash) > >>> { > >>> Eina_List *iter; > >>> @@ -280,7 +280,7 @@ > >>> * returns a mode within a given list of modes that is gemetrically > >>> identical. > >>> * If none is found, NULL is returned. > >>> */ > >>> - static Ecore_X_Randr_Mode_Info * > >>> +static Ecore_X_Randr_Mode_Info * > >>> _mode_geo_identical_find(Eina_List *modes, Ecore_X_Randr_Mode_Info > >>> *mode) { > >>> Eina_List *iter; > >>> @@ -300,7 +300,7 @@ > >>> * > >>> ***************************************************************** > >>> */ > >>> - Eina_Bool > >>> +Eina_Bool > >>> _12_screen_info_refresh(void) > >>> { > >>> EINA_SAFETY_ON_TRUE_RETURN_VAL((e_randr_screen_info.randr_version< > >>> ECORE_X_RANDR_1_2), EINA_FALSE); @@ -323,7 +323,7 @@ > >>> ****************************************************************** > >>> */ > >>> > >>> - static Eina_Bool > >>> +static Eina_Bool > >>> _x_poll_cb(void *data __UNUSED__) > >>> { > >>> EINA_SAFETY_ON_NULL_RETURN_VAL > >>> (e_randr_screen_info.rrvd_info.randr_info_12, ECORE_CALLBACK_CANCEL); @@ > >>> -333,7 +333,7 @@ return ECORE_CALLBACK_RENEW; > >>> } > >>> > >>> - void > >>> +void > >>> _12_event_listeners_add(void) > >>> { > >>> EINA_SAFETY_ON_TRUE_RETURN(E_RANDR_12_NO); > >>> @@ -358,7 +358,7 @@ > >>> * When the mode of a CRTC is changed only events 2 and 3 are triggered > >>> * > >>> */ > >>> - static Eina_Bool > >>> +static Eina_Bool > >>> _output_change_event_cb(void *data __UNUSED__, int type, void *ev) > >>> { > >>> Ecore_X_Event_Randr_Output_Change *oce = > >>> (Ecore_X_Event_Randr_Output_Change*)ev; @@ -462,7 +462,7 @@ > >>> return ECORE_CALLBACK_RENEW; > >>> } > >>> > >>> - static Eina_Bool > >>> +static Eina_Bool > >>> _crtc_change_event_cb(void *data __UNUSED__, int type, void *ev) > >>> { > >>> Ecore_X_Event_Randr_Crtc_Change *cce = > >>> (Ecore_X_Event_Randr_Crtc_Change*)ev; @@ -533,7 +533,7 @@ > >>> return ECORE_CALLBACK_RENEW; > >>> } > >>> > >>> - static Eina_Bool > >>> +static Eina_Bool > >>> _output_property_change_event_cb(void *data __UNUSED__, int type, void > >>> *ev) { > >>> Ecore_X_Event_Randr_Output_Property_Notify *opce = > >>> (Ecore_X_Event_Randr_Output_Property_Notify*)ev; @@ -561,7 +561,7 @@ > >>> * - try to share the output of a CRTC with other outputs already using > >>> it > >>> * (clone). > >>> */ > >>> - static Eina_Bool > >>> +static Eina_Bool > >>> _try_enable_output(E_Randr_Output_Info *output_info, Eina_Bool force) > >>> { > >>> Eina_List *iter, *outputs_list = NULL, *common_modes = NULL; > >>> @@ -796,7 +796,7 @@ > >>> return ret; > >>> } > >>> > >>> - void > >>> +void > >>> _12_event_listeners_remove(void) > >>> { > >>> Ecore_Event_Handler *_event_handler = NULL; > >>> > >>> Modified: trunk/e/src/bin/e_randr_12_crtc.c > >>> =================================================================== > >>> --- trunk/e/src/bin/e_randr_12_crtc.c 2012-03-08 11:35:07 UTC (rev > >>> 69054) +++ trunk/e/src/bin/e_randr_12_crtc.c 2012-03-08 11:37:54 UTC > >>> (rev 69055) @@ -73,7 +73,7 @@ > >>> * given, a struct with only the xid will be set > >>> * @return E_Randr_Crtc_Info element > >>> */ > >>> - E_Randr_Crtc_Info * > >>> +E_Randr_Crtc_Info * > >>> _crtc_info_new(Ecore_X_Randr_Crtc crtc) > >>> { > >>> E_Randr_Crtc_Info *crtc_info = NULL; > >>> @@ -113,7 +113,7 @@ > >>> /** > >>> * @param crtc_info the crtc info to be freed. > >>> */ > >>> - void > >>> +void > >>> _crtc_info_free(E_Randr_Crtc_Info *crtc_info) > >>> { > >>> EINA_SAFETY_ON_NULL_RETURN(crtc_info); > >>> @@ -207,7 +207,7 @@ > >>> * -bottom > >>> * most CRTC and return it. > >>> */ > >>> - const E_Randr_Crtc_Info * > >>> +const E_Randr_Crtc_Info * > >>> _crtc_according_to_policy_get(E_Randr_Crtc_Info *but, > >>> Ecore_X_Randr_Output_Policy policy) { > >>> Eina_List *iter, *possible_crtcs = NULL; > >>> > >>> Modified: trunk/e/src/bin/e_randr_12_output.c > >>> =================================================================== > >>> --- trunk/e/src/bin/e_randr_12_output.c 2012-03-08 11:35:07 UTC (rev > >>> 69054) +++ trunk/e/src/bin/e_randr_12_output.c 2012-03-08 11:37:54 UTC > >>> (rev 69055) @@ -163,7 +163,7 @@ > >>> output_info->monitor = NULL; > >>> } > >>> > >>> - Ecore_X_Randr_Output * > >>> +Ecore_X_Randr_Output * > >>> _outputs_to_array(Eina_List *outputs_info) > >>> { > >>> Ecore_X_Randr_Output *ret = NULL; > >>> @@ -223,7 +223,7 @@ > >>> return common_modes; > >>> } > >>> > >>> - static int > >>> +static int > >>> _modes_size_sort_cb(const void *d1, const void *d2) > >>> { > >>> Ecore_X_Randr_Mode_Info *mode1 = ((Ecore_X_Randr_Mode_Info *)d1), > >>> *mode2 = ((Ecore_X_Randr_Mode_Info *)d2); > >>> > >>> Modified: trunk/e/src/bin/e_randr_12_serialization.c > >>> =================================================================== > >>> --- trunk/e/src/bin/e_randr_12_serialization.c 2012-03-08 11:35:07 UTC > >>> (rev 69054) +++ trunk/e/src/bin/e_randr_12_serialization.c 2012-03-08 > >>> 11:37:54 UTC (rev 69055) @@ -46,7 +46,7 @@ > >>> */ > >>> //"Free" helper functions > >>> > >>> - void > >>> +void > >>> _serialized_output_free(E_Randr_Serialized_Output *so) > >>> { > >>> EINA_SAFETY_ON_NULL_RETURN(so); > >>> @@ -56,7 +56,7 @@ > >>> free(so); > >>> } > >>> > >>> - void > >>> +void > >>> _serialized_output_policy_free(E_Randr_Serialized_Output_Policy *sop) > >>> { > >>> EINA_SAFETY_ON_NULL_RETURN(sop); > >>> @@ -71,7 +71,7 @@ > >>> _serialized_output_policy_free(policy); > >>> } > >>> > >>> - void > >>> +void > >>> _mode_info_free(Ecore_X_Randr_Mode_Info *mode_info) > >>> { > >>> EINA_SAFETY_ON_NULL_RETURN(mode_info); > >>> @@ -80,7 +80,7 @@ > >>> free(mode_info); > >>> } > >>> > >>> - void > >>> +void > >>> _serialized_crtc_free(E_Randr_Serialized_Crtc *sc) > >>> { > >>> E_Randr_Serialized_Output *so; > >>> @@ -165,7 +165,7 @@ > >>> return edid_hash; > >>> } > >>> > >>> - Eina_List * > >>> +Eina_List * > >>> _outputs_policies_list_new(Eina_List *outputs) > >>> { > >>> E_Randr_Serialized_Output_Policy *sop; > >>> @@ -188,7 +188,7 @@ > >>> return list; > >>> } > >>> > >>> - E_Randr_Serialized_Output * > >>> +E_Randr_Serialized_Output * > >>> _serialized_output_new(E_Randr_Output_Info *output_info) > >>> { > >>> E_Randr_Serialized_Output *so; > >>> @@ -212,7 +212,7 @@ > >>> return so; > >>> } > >>> > >>> - E_Randr_Serialized_Crtc * > >>> +E_Randr_Serialized_Crtc * > >>> _serialized_crtc_new(E_Randr_Crtc_Info *crtc_info) > >>> { > >>> E_Randr_Serialized_Crtc *sc = NULL; > >>> @@ -244,7 +244,7 @@ > >>> return sc; > >>> } > >>> > >>> - E_Randr_Serialized_Setup_12 * > >>> +E_Randr_Serialized_Setup_12 * > >>> _12_serialized_setup_new(void) > >>> { > >>> E_Randr_Serialized_Setup_12 *ss = NULL; > >>> @@ -290,7 +290,7 @@ > >>> > >>> //Update (also retrieval) helper functions > >>> > >>> - E_Randr_Serialized_Setup_12 * > >>> +E_Randr_Serialized_Setup_12 * > >>> _matching_serialized_setup_get(Eina_List *setups_12) > >>> { > >>> E_Randr_Serialized_Setup_12 *ss_12; > >>> @@ -329,7 +329,7 @@ > >>> return NULL; > >>> } > >>> > >>> - Eina_List * > >>> +Eina_List * > >>> _outputs_policies_update(Eina_List *sops) > >>> { > >>> E_Randr_Serialized_Output_Policy *sop; > >>> @@ -342,7 +342,7 @@ > >>> return _outputs_policies_list_new > >>> (e_randr_screen_info.rrvd_info.randr_info_12->outputs); } > >>> > >>> - Eina_List * > >>> +Eina_List * > >>> _12_serialized_setup_update(Eina_List *setups_12) > >>> { > >>> E_Randr_Serialized_Setup_12 *ss_12; > >>> @@ -365,7 +365,7 @@ > >>> return setups_12; > >>> } > >>> > >>> - void > >>> +void > >>> _12_policies_restore(void) > >>> { > >>> E_Randr_Output_Info *output; > >>> @@ -390,7 +390,7 @@ > >>> } > >>> } > >>> > >>> - Eina_Bool > >>> +Eina_Bool > >>> _12_try_restore_configuration(void) > >>> { > >>> E_Randr_Serialized_Setup_12 *ss_12; > >>> @@ -460,7 +460,7 @@ > >>> return ret; > >>> } > >>> > >>> - void > >>> +void > >>> _12_serialized_setup_free(E_Randr_Serialized_Setup_12 *ss_12) > >>> { > >>> E_Randr_Serialized_Crtc *sc; > >>> @@ -484,7 +484,7 @@ > >>> _12_serialized_setup_free(ss_12); > >>> } > >>> > >>> - void > >>> +void > >>> _12_store_configuration(E_Randr_Configuration_Store_Modifier modifier) > >>> { > >>> if (modifier& (E_RANDR_CONFIGURATION_STORE_RESOLUTIONS | > >>> E_RANDR_CONFIGURATION_STORE_ARRANGEMENT | > >>> E_RANDR_CONFIGURATION_STORE_ORIENTATIONS)) @@ -502,7 +502,7 > >>> @@ //Retrievel functions for the current e_randr_screen_info context > >>> > >>> // Find entities for restoration in current e_randr_screen_info context > >>> - static E_Randr_Crtc_Info * > >>> +static E_Randr_Crtc_Info * > >>> _find_matching_crtc(E_Randr_Serialized_Crtc *sc) > >>> { > >>> EINA_SAFETY_ON_NULL_RETURN_VAL(sc, NULL); > >>> @@ -518,7 +518,7 @@ > >>> * @return List of E_Randr_Output* elements or NULL, if not all outputs > >>> could be > >>> * found or monitors are connected to different outputs > >>> */ > >>> - static Eina_List * > >>> +static Eina_List * > >>> _find_matching_outputs(Eina_List *sois) > >>> { > >>> Eina_List *r_output_iter, *s_output_iter, *list = NULL; > >>> @@ -548,7 +548,7 @@ > >>> return list; > >>> } > >>> > >>> - static Ecore_X_Randr_Mode_Info * > >>> +static Ecore_X_Randr_Mode_Info * > >>> _find_matching_mode_info(Ecore_X_Randr_Mode_Info *mode) > >>> { > >>> Eina_List *iter; > >>> @@ -579,7 +579,7 @@ > >>> return NULL; > >>> } > >>> > >>> - static int > >>> +static int > >>> _sort_by_number_of_edids(const void *d1, const void *d2) > >>> { > >>> const E_Randr_Serialized_Setup_12 *ss1 = (const > >>> E_Randr_Serialized_Setup_12*)d1; > >>> > >>> Modified: trunk/e/src/bin/e_randr_serialization.c > >>> =================================================================== > >>> --- trunk/e/src/bin/e_randr_serialization.c 2012-03-08 11:35:07 UTC > >>> (rev 69054) +++ trunk/e/src/bin/e_randr_serialization.c 2012-03-08 > >>> 11:37:54 UTC (rev 69055) @@ -12,13 +12,13 @@ > >>> ********************************************************************** > >>> */ > >>> > >>> - E_Randr_Serialized_Setup * > >>> +E_Randr_Serialized_Setup * > >>> _new_serialized_setup(void) > >>> { > >>> return E_NEW(E_Randr_Serialized_Setup, 1); > >>> } > >>> > >>> - EAPI void > >>> +EAPI void > >>> e_randr_store_configuration(E_Randr_Configuration_Store_Modifier > >>> modifier) { > >>> if (!e_config->randr_serialized_setup) > >>> > >>> Modified: trunk/e/src/modules/conf_randr/e_int_config_randr_arrangement.c > >>> =================================================================== > >>> --- trunk/e/src/modules/conf_randr/e_int_config_randr_arrangement.c > >>> 2012-03-08 11:35:07 UTC (rev 69054) +++ > >>> trunk/e/src/modules/conf_randr/e_int_config_randr_arrangement.c > >>> 2012-03-08 11:37:54 UTC (rev 69055) @@ -139,7 +139,7 @@ e_layout_thaw > >>> (area); } > >>> > >>> - Eina_Bool > >>> +Eina_Bool > >>> arrangement_widget_create_data(E_Config_Dialog_Data *data) > >>> { > >>> Eina_List *iter; > >>> > >>> > >>> ------------------------------------------------------------------------------ > >>> Virtualization& Cloud Management Using Capacity Planning > >>> Cloud computing makes use of virtualization - but cloud computing > >>> also focuses on allowing computing to be delivered as a service. > >>> http://www.accelacomm.com/jaw/sfnl/114/51521223/ > >>> _______________________________________________ > >>> enlightenment-svn mailing list > >>> enl...@li... > >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > >> > >> > >> > > > > > > ------------------------------------------------------------------------------ > > Virtualization & Cloud Management Using Capacity Planning > > Cloud computing makes use of virtualization - but cloud computing > > also focuses on allowing computing to be delivered as a service. > > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > > _______________________________________________ > > enlightenment-devel mailing list > > enl...@li... > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > -- > Leif > > ------------------------------------------------------------------------------ > Virtualization & Cloud Management Using Capacity Planning > Cloud computing makes use of virtualization - but cloud computing > also focuses on allowing computing to be delivered as a service. > http://www.accelacomm.com/jaw/sfnl/114/51521223/ > _______________________________________________ > enlightenment-devel mailing list > enl...@li... > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ra...@ra... |