hello,
what do you think about a "Wallpaper Engine" item in the Engine config
panel that would set the e_config->evas_engine_container, so we can
configure the evas engine for the wallpaper separately ?
it's usefull for me because xrender has problems rendering all kind of
things in enlightenment, but for the background it does a very good
job.
other engine options are in the configuration, and marked as "maybe
remove ?"; i'd vote for removal. i'm ok to take care of it.
laurent
Index: trunk/e/src/bin/e_config.h
===================================================================
--- trunk/e/src/bin/e_config.h (revision 45914)
+++ trunk/e/src/bin/e_config.h (working copy)
@@ -84,7 +84,7 @@
int show_desktop_icons; // GUI
int edge_flip_dragging; // GUI
int evas_engine_default; // GUI
- int evas_engine_container; // NO GUI - maybe remove?
+ int evas_engine_container; // GUI
int evas_engine_init; // NO GUI - maybe remove?
int evas_engine_menus; // NO GUI - maybe remove?
int evas_engine_borders; // NO GUI - maybe remove?
Index: trunk/e/src/modules/conf_engine/e_int_config_engine.c
===================================================================
--- trunk/e/src/modules/conf_engine/e_int_config_engine.c (revision 45914)
+++ trunk/e/src/modules/conf_engine/e_int_config_engine.c (working copy)
@@ -6,6 +6,9 @@
static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
static int _basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
+static int _advanced_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static void _cb_composite_change(void *data, Evas_Object *obj);
static void _cb_confirm_yes(void *data);
static void _cb_confirm_no(void *data);
@@ -16,6 +19,7 @@
int use_composite;
int evas_engine_default;
+ int evas_engine_container;
Evas_Object *o_composite;
};
@@ -33,6 +37,9 @@
v->basic.apply_cfdata = _basic_apply_data;
v->basic.create_widgets = _basic_create_widgets;
v->basic.check_changed = _basic_check_changed;
+ v->advanced.apply_cfdata = _advanced_apply_data;
+ v->advanced.create_widgets = _advanced_create_widgets;
+ v->advanced.check_changed = _advanced_check_changed;
cfd = e_config_dialog_new(con,
_("Engine Settings"),
@@ -57,6 +64,7 @@
{
cfdata->use_composite = e_config->use_composite;
cfdata->evas_engine_default = e_config->evas_engine_default;
+ cfdata->evas_engine_container = e_config->evas_engine_container;
}
static void
@@ -117,6 +125,75 @@
return o;
}
+static int
+_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ e_config->use_composite = cfdata->use_composite;
+ e_config->evas_engine_default = cfdata->evas_engine_default;
+ e_config->evas_engine_container = cfdata->evas_engine_container;
+ e_config_save_queue();
+ return 1;
+}
+
+static int
+_advanced_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+ return !((cfdata->use_composite == e_config->use_composite) &&
+ (cfdata->evas_engine_default == e_config->evas_engine_default) &&
+ (cfdata->evas_engine_container == e_config->evas_engine_container));
+}
+
+static Evas_Object *
+_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
+{
+ Evas_Object *o, *ob, *of;
+ E_Radio_Group *rg;
+ Eina_List *l;
+ int engine;
+
+ o = e_widget_list_add(evas, 0, 0);
+
+ of = e_widget_framelist_add(evas, _("General Settings"), 0);
+ ob = e_widget_check_add(evas, _("Enable Composite"),
+ &(cfdata->use_composite));
+ cfdata->o_composite = ob;
+ e_widget_on_change_hook_set(ob, _cb_composite_change, cfdata);
+ e_widget_framelist_object_append(of, ob);
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ of = e_widget_framelist_add(evas, _("Default Engine"), 0);
+ rg = e_widget_radio_group_new(&(cfdata->evas_engine_default));
+ for (l = e_config_engine_list(); l; l = l->next)
+ {
+ if (!strcmp("SOFTWARE", l->data)) engine = E_EVAS_ENGINE_SOFTWARE_X11;
+ else if (!strcmp("GL", l->data)) engine = E_EVAS_ENGINE_GL_X11;
+ else if (!strcmp("XRENDER", l->data)) engine = E_EVAS_ENGINE_XRENDER_X11;
+ else if (!strcmp("SOFTWARE_16", l->data)) engine = E_EVAS_ENGINE_SOFTWARE_X11_16;
+ else continue;
+ ob = e_widget_radio_add(evas, _(l->data), engine, rg);
+ e_widget_framelist_object_append(of, ob);
+ }
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ of = e_widget_framelist_add(evas, _("Wallpaper Engine"), 0);
+ rg = e_widget_radio_group_new(&(cfdata->evas_engine_container));
+ ob = e_widget_radio_add(evas, _("Use default"), E_EVAS_ENGINE_DEFAULT, rg);
+ e_widget_framelist_object_append(of, ob);
+ for (l = e_config_engine_list(); l; l = l->next)
+ {
+ if (!strcmp("SOFTWARE", l->data)) engine = E_EVAS_ENGINE_SOFTWARE_X11;
+ else if (!strcmp("GL", l->data)) engine = E_EVAS_ENGINE_GL_X11;
+ else if (!strcmp("XRENDER", l->data)) engine = E_EVAS_ENGINE_XRENDER_X11;
+ else if (!strcmp("SOFTWARE_16", l->data)) engine = E_EVAS_ENGINE_SOFTWARE_X11_16;
+ else continue;
+ ob = e_widget_radio_add(evas, _(l->data), engine, rg);
+ e_widget_framelist_object_append(of, ob);
+ }
+ e_widget_list_object_append(o, of, 1, 1, 0.5);
+
+ e_dialog_resizable_set(cfd->dia, 0);
+ return o;
+}
static void
_cb_composite_change(void *data, Evas_Object *obj)
{
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel