raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ecca33310d2d23444e7c3a7ff6d4296ee36b4baa

commit ecca33310d2d23444e7c3a7ff6d4296ee36b4baa
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon Dec 7 19:44:46 2015 +0900

    e randr - feature fix that allows config to jump to specific screen
    
    as part of another fix for having e just pop up the screen config
    dialog when a new screen is detected that isn't configured, allow
    config dialog for randr to get screen output name via input params
    
    @fix
---
 src/modules/conf_randr/e_int_config_randr2.c | 34 +++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 8 deletions(-)

diff --git a/src/modules/conf_randr/e_int_config_randr2.c 
b/src/modules/conf_randr/e_int_config_randr2.c
index ac9ea88..6104867 100644
--- a/src/modules/conf_randr/e_int_config_randr2.c
+++ b/src/modules/conf_randr/e_int_config_randr2.c
@@ -5,6 +5,7 @@
 /* local structures */
 struct _E_Config_Dialog_Data
 {
+   char *params;
    E_Config_Dialog *cfd;
    Eina_List *screen_items;
    Eina_List *screen_items2;
@@ -49,7 +50,7 @@ static int          _basic_check(E_Config_Dialog *cfd, 
E_Config_Dialog_Data *cfd
 
 /* public functions */
 E_Config_Dialog *
-e_int_config_randr2(Evas_Object *parent EINA_UNUSED, const char *params 
EINA_UNUSED)
+e_int_config_randr2(Evas_Object *parent EINA_UNUSED, const char *params)
 {
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
@@ -69,7 +70,7 @@ e_int_config_randr2(Evas_Object *parent EINA_UNUSED, const 
char *params EINA_UNU
    cfd = e_config_dialog_new(NULL, _("Screen Setup"),
                              "E", "screen/screen_setup",
                              "preferences-system-screen-resolution",
-                             0, v, NULL);
+                             0, v, (void *)params);
    return cfd;
 }
 
@@ -80,7 +81,8 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED)
    E_Config_Dialog_Data *cfdata;
 
    if (!(cfdata = E_NEW(E_Config_Dialog_Data, 1))) return NULL;
-   cfdata->restore = e_randr2_cfg->restore;
+   cfdata->params = strdup(cfd->data);
+   if (cfd->data) cfdata->restore = e_randr2_cfg->restore;
    cfdata->hotplug = !e_randr2_cfg->ignore_hotplug_events;
    cfdata->acpi = !e_randr2_cfg->ignore_acpi_events;
    return cfdata;
@@ -98,6 +100,7 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
         eina_stringshare_del(cs->rel_to);
         free(cs);
      }
+   free(cfdata->params);
    eina_list_free(cfdata->screen_items);
    eina_list_free(cfdata->screen_items2);
    EINA_LIST_FREE(cfdata->freelist, dt) free(dt);
@@ -572,12 +575,27 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas 
EINA_UNUSED, E_Config_Dialog_Data
                   it = elm_hoversel_item_add(o, s->info.name,
                                              NULL, ELM_ICON_NONE,
                                              _cb_screen_select, cfdata);
-                  if (!first)
+                  if (cfdata->params)
                     {
-                       first = s;
-                       first_cfg = cs;
-                       cfdata->screen = i;
-                       elm_object_text_set(o, s->info.name);
+                       if ((s->info.name) &&
+                           (!strcmp(s->info.name, cfdata->params)) &&
+                           (!first))
+                         {
+                            first = s;
+                            first_cfg = cs;
+                            cfdata->screen = i;
+                            elm_object_text_set(o, s->info.name);
+                          }
+                    }
+                  else
+                    {
+                       if (!first)
+                         {
+                            first = s;
+                            first_cfg = cs;
+                            cfdata->screen = i;
+                            elm_object_text_set(o, s->info.name);
+                         }
                     }
                   cfdata->screen_items = 
eina_list_append(cfdata->screen_items, it);
                   i++;

-- 


Reply via email to