pass screen id when opening config dialog with ASK hotplug policy

This commit is contained in:
Mike Blumenkrantz 2017-07-21 16:20:04 -04:00
parent 48a7181089
commit 6928ca8ce4
1 changed files with 7 additions and 30 deletions

View File

@ -178,32 +178,6 @@ _screen_closed(E_Randr2_Screen *s)
return EINA_FALSE; return EINA_FALSE;
} }
static void
_screen_check_unconfigured(E_Randr2 *r, E_Config_Randr2 *cfg)
{
Eina_List *l;
E_Randr2_Screen *s;
E_Config_Randr2_Screen *cs;
printf("RRR: check for unconfigured screens....\n");
EINA_LIST_FOREACH(r->screens, l, s)
{
cs = NULL;
printf("RRR: looking at %s ...\n", s->info.name);
if ((!_screen_closed(s)) && (s->info.connected))
{
cs = e_randr2_config_screen_find(s, cfg);
if (!cs)
{
printf("RRR: unconfig display on: %s\n", s->info.name);
e_configure_registry_call("screen/screen_setup",
NULL, s->info.name);
return;
}
}
}
}
static void static void
_animated_apply_abort(void) _animated_apply_abort(void)
{ {
@ -246,7 +220,6 @@ _cb_fade_animator(void *data EINA_UNUSED)
{ {
_apply_delay = ecore_timer_loop_add(1.0, _cb_delay_timer, NULL); _apply_delay = ecore_timer_loop_add(1.0, _cb_delay_timer, NULL);
_do_apply(); _do_apply();
_screen_check_unconfigured(e_randr2, e_randr2_cfg);
} }
else else
{ {
@ -383,9 +356,10 @@ _config_save(E_Randr2 *r, E_Config_Randr2 *cfg)
} }
static Eina_Bool static Eina_Bool
_config_ask_dialog() _config_ask_dialog(void *data)
{ {
e_configure_registry_call("screen/screen_setup", NULL, NULL); e_configure_registry_call("screen/screen_setup", NULL, data);
free(data);
return EINA_FALSE; return EINA_FALSE;
} }
@ -429,7 +403,10 @@ _config_update(E_Randr2 *r, E_Config_Randr2 *cfg, Eina_Bool update_only)
cs->rel_mode = E_RANDR2_RELATIVE_CLONE; cs->rel_mode = E_RANDR2_RELATIVE_CLONE;
break; break;
case E_RANDR2_POLICY_ASK: case E_RANDR2_POLICY_ASK:
ecore_timer_loop_add(2, _config_ask_dialog, NULL); if (starting)
ecore_timer_loop_add(2, _config_ask_dialog, eina_strdup(s->info.name));
else
ecore_timer_loop_add(0.01, _config_ask_dialog, eina_strdup(s->info.name));
case E_RANDR2_POLICY_NONE: case E_RANDR2_POLICY_NONE:
cs->rel_mode = E_RANDR2_RELATIVE_NONE; cs->rel_mode = E_RANDR2_RELATIVE_NONE;
break; break;