From c0d0afad3254be70ef79bd15b23c257161ff1e67 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Thu, 6 Mar 2014 14:15:57 +0100 Subject: [PATCH] randr: function to apply current config --- src/bin/e_randr.c | 30 ++++++++++++++++++++++++++++++ src/bin/e_randr.h | 1 + 2 files changed, 31 insertions(+) diff --git a/src/bin/e_randr.c b/src/bin/e_randr.c index c9f5fcebf..a785673a8 100644 --- a/src/bin/e_randr.c +++ b/src/bin/e_randr.c @@ -129,6 +129,36 @@ e_randr_config_save(void) return e_config_domain_save("e_randr", _e_randr_edd, e_randr_cfg); } +EAPI void +e_randr_config_apply(void) +{ + Eina_List *l; + E_Randr_Output *output; + + /* Update output mode */ + EINA_LIST_FOREACH(e_randr->outputs, l, output) + { + if (!output->cfg->connect) + _e_randr_output_active_set(output, EINA_FALSE); + else if ((!output->active) && (output->status == ECORE_X_RANDR_CONNECTION_STATUS_CONNECTED)) + { + if (_e_randr_output_crtc_find(output)) + { + _e_randr_output_mode_update(output); + _e_randr_output_active_set(output, EINA_TRUE); + } + } + } + /* update lid status */ + _e_randr_lid_update(); + + /* apply randr settings */ + _e_randr_apply(); + + /* update primary output */ + _e_randr_config_primary_update(); +} + EAPI double e_randr_mode_refresh_rate_get(Ecore_X_Randr_Mode_Info *mode) { diff --git a/src/bin/e_randr.h b/src/bin/e_randr.h index c398cac69..2be789c9c 100644 --- a/src/bin/e_randr.h +++ b/src/bin/e_randr.h @@ -76,6 +76,7 @@ EINTERN Eina_Bool e_randr_init(void); EINTERN int e_randr_shutdown(void); EAPI Eina_Bool e_randr_config_save(void); +EAPI void e_randr_config_apply(void); EAPI double e_randr_mode_refresh_rate_get(Ecore_X_Randr_Mode_Info *mode); extern EAPI E_Config_Randr *e_randr_cfg;