e17:comp: add config option for initial draw timeout.

- no more laggy everything, reduced default timeout from 0.2 to 0.05
- add match for everything for new configs



SVN revision: 57780
This commit is contained in:
Hannes Janetzek 2011-03-15 21:35:08 +00:00
parent 6f65815b3d
commit 0ab4fa35e4
4 changed files with 22 additions and 4 deletions

View File

@ -375,9 +375,8 @@ _e_mod_comp_win_ready_timeout_setup(E_Comp_Win *cw)
}
else
{
// FIXME 0.2 -> make config val
cw->ready_timeout = ecore_timer_add
(0.2, _e_mod_comp_cb_win_show_ready_timeout, cw);
(_comp_mod->conf->first_draw_delay, _e_mod_comp_cb_win_show_ready_timeout, cw);
}
}

View File

@ -64,6 +64,7 @@ struct _E_Config_Dialog_Data
int fps_show;
int fps_corner;
int fps_average_range;
double first_draw_delay;
};
@ -147,7 +148,8 @@ _create_data(E_Config_Dialog *cfd)
cfdata->fps_average_range = _comp_mod->conf->fps_average_range;
if (cfdata->fps_average_range < 1) cfdata->fps_average_range = 12;
else if (cfdata->fps_average_range > 120) cfdata->fps_average_range = 120;
cfdata->first_draw_delay = _comp_mod->conf->first_draw_delay;
EINA_LIST_FOREACH(_comp_mod->conf->match.popups, l, m)
{
m2 = E_NEW(Match_Config, 1);
@ -1148,6 +1150,10 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
ob = e_widget_check_add(evas, _("Grab Server during draw"), &(cfdata->grab));
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
ob = e_widget_label_add(evas, _("Initial draw timeout"));
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
ob = e_widget_slider_add(evas, 1, 0, _("%1.2f Seconds"), 0.01, 0.5, 0.01, 0, &(cfdata->first_draw_delay), NULL, 150);
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
e_widget_toolbook_page_append(otb, NULL, _("Sync"), ol, 0, 0, 0, 0, 0.5, 0.0);
ol = e_widget_list_add(evas, 0, 0);
@ -1328,6 +1334,7 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
(cfdata->fps_show != _comp_mod->conf->fps_show) ||
(cfdata->fps_corner != _comp_mod->conf->fps_corner) ||
(cfdata->fps_average_range != _comp_mod->conf->fps_average_range) ||
(cfdata->first_draw_delay != _comp_mod->conf->first_draw_delay) ||
(cfdata->match.changed)
)
{
@ -1391,6 +1398,7 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
_comp_mod->conf->fps_show = cfdata->fps_show;
_comp_mod->conf->fps_corner = cfdata->fps_corner;
_comp_mod->conf->fps_average_range = cfdata->fps_average_range;
_comp_mod->conf->first_draw_delay = cfdata->first_draw_delay;
if (_comp_mod->conf->shadow_style)
eina_stringshare_del(_comp_mod->conf->shadow_style);
_comp_mod->conf->shadow_style = NULL;

View File

@ -90,6 +90,7 @@ e_modapi_init(E_Module *m)
E_CONFIG_VAL(D, T, send_dump, UCHAR);
E_CONFIG_VAL(D, T, nocomp_fs, UCHAR);
E_CONFIG_VAL(D, T, smooth_windows, UCHAR);
E_CONFIG_VAL(D, T, first_draw_delay, DOUBLE);
E_CONFIG_LIST(D, T, match.popups, mod->conf_match_edd);
E_CONFIG_LIST(D, T, match.borders, mod->conf_match_edd);
E_CONFIG_LIST(D, T, match.overrides, mod->conf_match_edd);
@ -103,6 +104,9 @@ e_modapi_init(E_Module *m)
e_config->use_composite = 1;
e_config_save_queue();
}
/* XXX remove: update old configs. add config versioning */
if (mod->conf->first_draw_delay == 0)
mod->conf->first_draw_delay = 0.05;
_comp_mod = mod;
@ -145,6 +149,7 @@ _e_mod_config_new(E_Module *m)
mod->conf->send_dump = 0; // implement
mod->conf->nocomp_fs = 0; // buggy
mod->conf->smooth_windows = 0;
mod->conf->first_draw_delay = 0.05;
mod->conf->match.popups = NULL;
mat = E_NEW(Match, 1);
@ -165,6 +170,11 @@ _e_mod_config_new(E_Module *m)
mat->shadow_style = eina_stringshare_add("none");
mat = E_NEW(Match, 1);
mod->conf->match.overrides = eina_list_append(mod->conf->match.overrides, mat);
mat->name = eina_stringshare_add("E");
mat->clas = eina_stringshare_add("everything");
mat->shadow_style = eina_stringshare_add("popup");
mat = E_NEW(Match, 1);
mod->conf->match.overrides = eina_list_append(mod->conf->match.overrides, mat);
mat->primary_type = ECORE_X_WINDOW_TYPE_DROPDOWN_MENU;
mat->shadow_style = eina_stringshare_add("menu");
mat = E_NEW(Match, 1);

View File

@ -30,8 +30,9 @@ struct _Config
unsigned char send_dump;
unsigned char nocomp_fs;
unsigned char smooth_windows;
double first_draw_delay;
struct {
struct {
Eina_List *popups; // used for e popups
Eina_List *borders; // used for borders
Eina_List *overrides; // used for client menus, tooltips etc.