randr - add response timeout config value
This commit is contained in:
parent
e8f5794b81
commit
ddc9ff7280
|
@ -1,6 +1,6 @@
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
#define E_RANDR_CONFIG_VERSION 2
|
#define E_RANDR_CONFIG_VERSION 3
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
static Eina_Bool _screen_closed(E_Randr2_Screen *s);
|
static Eina_Bool _screen_closed(E_Randr2_Screen *s);
|
||||||
|
@ -83,6 +83,7 @@ e_randr2_init(void)
|
||||||
#define D _e_randr2_cfg_edd
|
#define D _e_randr2_cfg_edd
|
||||||
E_CONFIG_VAL(D, T, version, INT);
|
E_CONFIG_VAL(D, T, version, INT);
|
||||||
E_CONFIG_LIST(D, T, screens, _e_randr2_cfg_screen_edd);
|
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, restore, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, ignore_hotplug_events, UCHAR);
|
E_CONFIG_VAL(D, T, ignore_hotplug_events, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, ignore_acpi_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)
|
if (cfg->version < 2)
|
||||||
cfg->default_policy = E_RANDR2_POLICY_EXTEND;
|
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 *
|
static E_Config_Randr2 *
|
||||||
|
@ -362,6 +366,10 @@ _config_load(void)
|
||||||
{
|
{
|
||||||
if (cfg->version < E_RANDR_CONFIG_VERSION)
|
if (cfg->version < E_RANDR_CONFIG_VERSION)
|
||||||
_config_upgrade(cfg);
|
_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");
|
printf("RRR: loaded existing config\n");
|
||||||
return cfg;
|
return cfg;
|
||||||
}
|
}
|
||||||
|
@ -374,6 +382,7 @@ _config_load(void)
|
||||||
cfg->ignore_hotplug_events = 0;
|
cfg->ignore_hotplug_events = 0;
|
||||||
cfg->ignore_acpi_events = 0;
|
cfg->ignore_acpi_events = 0;
|
||||||
cfg->default_policy = E_RANDR2_POLICY_EXTEND;
|
cfg->default_policy = E_RANDR2_POLICY_EXTEND;
|
||||||
|
cfg->hotplug_response = 1.0;
|
||||||
printf("RRR: fresh config\n");
|
printf("RRR: fresh config\n");
|
||||||
return cfg;
|
return cfg;
|
||||||
}
|
}
|
||||||
|
@ -1403,7 +1412,13 @@ e_randr2_screen_refresh_queue(Eina_Bool lid_event)
|
||||||
if (_screen_delay_timer)
|
if (_screen_delay_timer)
|
||||||
ecore_timer_loop_reset(_screen_delay_timer);
|
ecore_timer_loop_reset(_screen_delay_timer);
|
||||||
else
|
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;
|
event_screen |= !!lid_event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -102,6 +102,7 @@ struct _E_Config_Randr2
|
||||||
unsigned char ignore_hotplug_events;
|
unsigned char ignore_hotplug_events;
|
||||||
unsigned char ignore_acpi_events;
|
unsigned char ignore_acpi_events;
|
||||||
E_Randr2_Policy default_policy;
|
E_Randr2_Policy default_policy;
|
||||||
|
double hotplug_response;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Config_Randr2_Screen
|
struct _E_Config_Randr2_Screen
|
||||||
|
|
|
@ -33,6 +33,7 @@ struct _E_Config_Dialog_Data
|
||||||
int hotplug;
|
int hotplug;
|
||||||
int acpi;
|
int acpi;
|
||||||
int screen;
|
int screen;
|
||||||
|
double hotplug_response;
|
||||||
E_Randr2_Policy policy;
|
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->hotplug = !e_randr2_cfg->ignore_hotplug_events;
|
||||||
cfdata->acpi = !e_randr2_cfg->ignore_acpi_events;
|
cfdata->acpi = !e_randr2_cfg->ignore_acpi_events;
|
||||||
cfdata->policy = e_randr2_cfg->default_policy;
|
cfdata->policy = e_randr2_cfg->default_policy;
|
||||||
|
cfdata->hotplug_response = e_randr2_cfg->hotplug_response;
|
||||||
return cfdata;
|
return cfdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,6 +130,14 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
||||||
E_FREE(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
|
static void
|
||||||
_cb_restore_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED)
|
_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);
|
evas_object_show(o);
|
||||||
bx2 = 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);
|
o = elm_check_add(win);
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
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);
|
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_hotplug_events = !cfdata->hotplug;
|
||||||
e_randr2_cfg->ignore_acpi_events = !cfdata->acpi;
|
e_randr2_cfg->ignore_acpi_events = !cfdata->acpi;
|
||||||
e_randr2_cfg->default_policy = cfdata->policy;
|
e_randr2_cfg->default_policy = cfdata->policy;
|
||||||
|
e_randr2_cfg->hotplug_response = cfdata->hotplug_response;
|
||||||
|
|
||||||
printf("APPLY....................\n");
|
printf("APPLY....................\n");
|
||||||
EINA_LIST_FOREACH(cfdata->screens, l, cs2)
|
EINA_LIST_FOREACH(cfdata->screens, l, cs2)
|
||||||
|
|
Loading…
Reference in New Issue