randr - add response timeout config value
This commit is contained in:
parent
e8f5794b81
commit
ddc9ff7280
|
@ -1,6 +1,6 @@
|
|||
#include "e.h"
|
||||
|
||||
#define E_RANDR_CONFIG_VERSION 2
|
||||
#define E_RANDR_CONFIG_VERSION 3
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
static Eina_Bool _screen_closed(E_Randr2_Screen *s);
|
||||
|
@ -83,6 +83,7 @@ e_randr2_init(void)
|
|||
#define D _e_randr2_cfg_edd
|
||||
E_CONFIG_VAL(D, T, version, INT);
|
||||
E_CONFIG_LIST(D, T, screens, _e_randr2_cfg_screen_edd);
|
||||
E_CONFIG_VAL(D, T, hotplug_response, DOUBLE);
|
||||
E_CONFIG_VAL(D, T, restore, UCHAR);
|
||||
E_CONFIG_VAL(D, T, ignore_hotplug_events, UCHAR);
|
||||
E_CONFIG_VAL(D, T, ignore_acpi_events, UCHAR);
|
||||
|
@ -349,6 +350,9 @@ _config_upgrade(E_Config_Randr2 *cfg)
|
|||
{
|
||||
if (cfg->version < 2)
|
||||
cfg->default_policy = E_RANDR2_POLICY_EXTEND;
|
||||
if (cfg->version < 3)
|
||||
cfg->hotplug_response = 1.0;
|
||||
cfg->version = E_RANDR_CONFIG_VERSION;
|
||||
}
|
||||
|
||||
static E_Config_Randr2 *
|
||||
|
@ -362,6 +366,10 @@ _config_load(void)
|
|||
{
|
||||
if (cfg->version < E_RANDR_CONFIG_VERSION)
|
||||
_config_upgrade(cfg);
|
||||
if (cfg->hotplug_response < 0.2)
|
||||
cfg->hotplug_response = 0.2;
|
||||
else if (cfg->hotplug_response > 9.0)
|
||||
cfg->hotplug_response = 9.0;
|
||||
printf("RRR: loaded existing config\n");
|
||||
return cfg;
|
||||
}
|
||||
|
@ -374,6 +382,7 @@ _config_load(void)
|
|||
cfg->ignore_hotplug_events = 0;
|
||||
cfg->ignore_acpi_events = 0;
|
||||
cfg->default_policy = E_RANDR2_POLICY_EXTEND;
|
||||
cfg->hotplug_response = 1.0;
|
||||
printf("RRR: fresh config\n");
|
||||
return cfg;
|
||||
}
|
||||
|
@ -1403,7 +1412,13 @@ e_randr2_screen_refresh_queue(Eina_Bool lid_event)
|
|||
if (_screen_delay_timer)
|
||||
ecore_timer_loop_reset(_screen_delay_timer);
|
||||
else
|
||||
_screen_delay_timer = ecore_timer_loop_add(1.0, _cb_screen_change_delay, NULL);
|
||||
{
|
||||
double t = 1.0;
|
||||
|
||||
if ((e_randr2_cfg) && (e_randr2_cfg->hotplug_response > 0.2))
|
||||
t = e_randr2_cfg->hotplug_response;
|
||||
_screen_delay_timer = ecore_timer_loop_add(t, _cb_screen_change_delay, NULL);
|
||||
}
|
||||
event_screen |= !!lid_event;
|
||||
}
|
||||
|
||||
|
|
|
@ -102,6 +102,7 @@ struct _E_Config_Randr2
|
|||
unsigned char ignore_hotplug_events;
|
||||
unsigned char ignore_acpi_events;
|
||||
E_Randr2_Policy default_policy;
|
||||
double hotplug_response;
|
||||
};
|
||||
|
||||
struct _E_Config_Randr2_Screen
|
||||
|
|
|
@ -33,6 +33,7 @@ struct _E_Config_Dialog_Data
|
|||
int hotplug;
|
||||
int acpi;
|
||||
int screen;
|
||||
double hotplug_response;
|
||||
E_Randr2_Policy policy;
|
||||
};
|
||||
|
||||
|
@ -105,6 +106,7 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED)
|
|||
cfdata->hotplug = !e_randr2_cfg->ignore_hotplug_events;
|
||||
cfdata->acpi = !e_randr2_cfg->ignore_acpi_events;
|
||||
cfdata->policy = e_randr2_cfg->default_policy;
|
||||
cfdata->hotplug_response = e_randr2_cfg->hotplug_response;
|
||||
return cfdata;
|
||||
}
|
||||
|
||||
|
@ -128,6 +130,14 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
|||
E_FREE(cfdata);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_hotplug_response_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata = data;
|
||||
cfdata->hotplug_response = elm_slider_value_get(obj);
|
||||
e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_restore_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED)
|
||||
{
|
||||
|
@ -1104,6 +1114,18 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
|
|||
evas_object_show(o);
|
||||
bx2 = o;
|
||||
|
||||
o = elm_slider_add(win);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
elm_object_text_set(o, _("Response"));
|
||||
elm_slider_unit_format_set(o, "%1.1f sec");
|
||||
elm_slider_span_size_set(o, 88);
|
||||
elm_slider_min_max_set(o, 0.2, 9.0);
|
||||
elm_slider_value_set(o, cfdata->hotplug_response);
|
||||
elm_box_pack_end(bx2, o);
|
||||
evas_object_show(o);
|
||||
evas_object_smart_callback_add(o, "changed", _cb_hotplug_response_changed, cfdata);
|
||||
|
||||
o = elm_check_add(win);
|
||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
@ -1160,6 +1182,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
|||
e_randr2_cfg->ignore_hotplug_events = !cfdata->hotplug;
|
||||
e_randr2_cfg->ignore_acpi_events = !cfdata->acpi;
|
||||
e_randr2_cfg->default_policy = cfdata->policy;
|
||||
e_randr2_cfg->hotplug_response = cfdata->hotplug_response;
|
||||
|
||||
printf("APPLY....................\n");
|
||||
EINA_LIST_FOREACH(cfdata->screens, l, cs2)
|
||||
|
|
Loading…
Reference in New Issue