summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-06-15 22:27:34 +0100
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-06-15 22:27:34 +0100
commitb55fa736ed02adfd47c3a255e93f9ab732c70385 (patch)
treeb82d00417aea7d6e57caf085a3c1ac6056b19a90
parentc4ab23511e342046ba271b985d3fc59a4af34e9b (diff)
randr - add option to ignore disconnects on specific screens...
work around kvm's that like to disconenct screens... be able to force an ignore on disconnects on specific screens.
-rw-r--r--src/bin/e_comp_x_randr.c1
-rw-r--r--src/bin/e_randr2.c66
-rw-r--r--src/bin/e_randr2.h2
-rw-r--r--src/modules/conf_randr/e_int_config_randr2.c42
4 files changed, 96 insertions, 15 deletions
diff --git a/src/bin/e_comp_x_randr.c b/src/bin/e_comp_x_randr.c
index da1b0759d..fd9f3f650 100644
--- a/src/bin/e_comp_x_randr.c
+++ b/src/bin/e_comp_x_randr.c
@@ -724,6 +724,7 @@ e_comp_x_randr_create(void)
724 E_Randr2_Screen *s = calloc(1, sizeof(E_Randr2_Screen)); 724 E_Randr2_Screen *s = calloc(1, sizeof(E_Randr2_Screen));
725 if (!s) continue; 725 if (!s) continue;
726 726
727 printf("RRR: NEW SCREEN ...\n");
727 s->info.name = _output_name_get(root, outputs[i]); 728 s->info.name = _output_name_get(root, outputs[i]);
728 printf("RRR: .... out %s\n", s->info.name); 729 printf("RRR: .... out %s\n", s->info.name);
729 if (!s->info.name) 730 if (!s->info.name)
diff --git a/src/bin/e_randr2.c b/src/bin/e_randr2.c
index 9b8f38357..643d399a1 100644
--- a/src/bin/e_randr2.c
+++ b/src/bin/e_randr2.c
@@ -72,6 +72,7 @@ e_randr2_init(void)
72 E_CONFIG_VAL(D, T, priority, INT); 72 E_CONFIG_VAL(D, T, priority, INT);
73 E_CONFIG_VAL(D, T, rel_mode, UCHAR); 73 E_CONFIG_VAL(D, T, rel_mode, UCHAR);
74 E_CONFIG_VAL(D, T, enabled, UCHAR); 74 E_CONFIG_VAL(D, T, enabled, UCHAR);
75 E_CONFIG_VAL(D, T, ignore_disconnect, UCHAR);
75 E_CONFIG_VAL(D, T, profile, STR); 76 E_CONFIG_VAL(D, T, profile, STR);
76 E_CONFIG_VAL(D, T, scale_multiplier, DOUBLE); 77 E_CONFIG_VAL(D, T, scale_multiplier, DOUBLE);
77 78
@@ -154,12 +155,46 @@ e_randr2_config_apply(void)
154 _animated_apply(); 155 _animated_apply();
155} 156}
156 157
158static E_Randr2_Screen *
159_randr_screen_find(E_Randr2 *r, E_Randr2_Screen *src)
160{
161 Eina_List *l;
162 E_Randr2_Screen *s;
163
164 EINA_LIST_FOREACH(r->screens, l, s)
165 {
166 if ((s->info.name) && (src->info.name) &&
167 (!strcmp(s->info.name, src->info.name)))
168 return s;
169 }
170 return NULL;
171}
172
173static void
174_randr_screen_props_copyover(E_Randr2 *rold, E_Randr2 *rnew)
175{
176 Eina_List *l;
177 E_Randr2_Screen *s, *s2;
178
179 // copy s->config.ignore_disconnect over from tr to e_randr2
180 EINA_LIST_FOREACH(rnew->screens, l, s)
181 {
182 s2 = _randr_screen_find(rold, s);
183 if (s2) s->config.ignore_disconnect = s2->config.ignore_disconnect;
184 }
185}
186
157E_API void 187E_API void
158e_randr2_screeninfo_update(void) 188e_randr2_screeninfo_update(void)
159{ 189{
190 E_Randr2 *tr = e_randr2;
160 // re-fetch/update current screen info 191 // re-fetch/update current screen info
161 _info_free(e_randr2);
162 e_randr2 = e_comp->screen->create(); 192 e_randr2 = e_comp->screen->create();
193 if ((tr) && (e_randr2))
194 {
195 _randr_screen_props_copyover(tr, e_randr2);
196 _info_free(tr);
197 }
163 _screen_config_maxsize(); 198 _screen_config_maxsize();
164} 199}
165 200
@@ -265,10 +300,16 @@ _animated_apply(void)
265static void 300static void
266_do_apply(void) 301_do_apply(void)
267{ 302{
303 E_Randr2 *tr = e_randr2;
268 // take current screen config and apply it to the driver 304 // take current screen config and apply it to the driver
269 printf("RRR: re-get info before applying..\n"); 305 printf("RRR: re-get info before applying..\n");
270 _info_free(e_randr2); 306 tr = e_randr2;
271 e_randr2 = e_comp->screen->create(); 307 e_randr2 = e_comp->screen->create();
308 if ((tr) && (e_randr2))
309 {
310 _randr_screen_props_copyover(tr, e_randr2);
311 _info_free(tr);
312 }
272 _screen_config_maxsize(); 313 _screen_config_maxsize();
273 printf("RRR: apply config...\n"); 314 printf("RRR: apply config...\n");
274 _config_apply(e_randr2, e_randr2_cfg); 315 _config_apply(e_randr2, e_randr2_cfg);
@@ -381,8 +422,13 @@ _config_update(E_Randr2 *r, E_Config_Randr2 *cfg, Eina_Bool update_only)
381 printf("--------------------------------------------------\n"); 422 printf("--------------------------------------------------\n");
382 EINA_LIST_FOREACH(r->screens, l, s) 423 EINA_LIST_FOREACH(r->screens, l, s)
383 { 424 {
384 printf("RRR: out id=%s: connected=%i\n", s->id, s->info.connected); 425 printf("RRR: out id=%s: connected=%i enabled=%i configured=%i\n",
385 if ((!s->id) || (!s->info.connected) || (_screen_closed(s))) continue; 426 s->id, s->info.connected,
427 s->config.enabled, s->config.configured);
428 if (!s->id) continue;
429 if (!s->info.connected) continue;
430 if (_screen_closed(s)) continue;
431
386 cs = e_randr2_config_screen_find(s, cfg); 432 cs = e_randr2_config_screen_find(s, cfg);
387 if (cs && update_only) continue; 433 if (cs && update_only) continue;
388 if (!cs) 434 if (!cs)
@@ -469,6 +515,7 @@ _config_update(E_Randr2 *r, E_Config_Randr2 *cfg, Eina_Bool update_only)
469 } 515 }
470 printf("RRR: store scale mul %1.5f\n", cs->scale_multiplier); 516 printf("RRR: store scale mul %1.5f\n", cs->scale_multiplier);
471 s->config.scale_multiplier = cs->scale_multiplier; 517 s->config.scale_multiplier = cs->scale_multiplier;
518 s->config.ignore_disconnect = cs->ignore_disconnect;
472 ret = EINA_TRUE; 519 ret = EINA_TRUE;
473 } 520 }
474 } 521 }
@@ -498,6 +545,8 @@ _config_really_apply(E_Randr2_Screen *s, E_Config_Randr2_Screen *cs)
498 if (cs->profile) s->config.profile = strdup(cs->profile); 545 if (cs->profile) s->config.profile = strdup(cs->profile);
499 else s->config.profile = NULL; 546 else s->config.profile = NULL;
500 s->config.scale_multiplier = cs->scale_multiplier; 547 s->config.scale_multiplier = cs->scale_multiplier;
548 s->config.ignore_disconnect = cs->ignore_disconnect;
549 printf("RRR: really apply '%s' ignore discon %i\n", s->info.name, s->config.ignore_disconnect);
501 } 550 }
502 else 551 else
503 { 552 {
@@ -519,6 +568,7 @@ _config_really_apply(E_Randr2_Screen *s, E_Config_Randr2_Screen *cs)
519 free(s->config.profile); 568 free(s->config.profile);
520 s->config.profile = NULL; 569 s->config.profile = NULL;
521 s->config.scale_multiplier = 0.0; 570 s->config.scale_multiplier = 0.0;
571 s->config.ignore_disconnect = EINA_FALSE;
522 } 572 }
523} 573}
524 574
@@ -546,7 +596,10 @@ _config_apply(E_Randr2 *r, E_Config_Randr2 *cfg)
546 else 596 else
547 { 597 {
548 printf("RRR: ... disabled\n"); 598 printf("RRR: ... disabled\n");
549 _config_really_apply(s, NULL); 599 if (!s->config.ignore_disconnect)
600 _config_really_apply(s, NULL);
601 else
602 printf("RRR: ... ignore disconnected\n");
550 } 603 }
551 s->config.configured = EINA_TRUE; 604 s->config.configured = EINA_TRUE;
552 } 605 }
@@ -734,6 +787,7 @@ _cb_screen_change_delay(void *data EINA_UNUSED)
734 rtemp = e_comp->screen->create(); 787 rtemp = e_comp->screen->create();
735 if (rtemp) 788 if (rtemp)
736 { 789 {
790 if (e_randr2) _randr_screen_props_copyover(e_randr2, rtemp);
737 if (_screens_differ(e_randr2, rtemp)) change = EINA_TRUE; 791 if (_screens_differ(e_randr2, rtemp)) change = EINA_TRUE;
738 if (e_randr2_cfg->default_policy != E_RANDR2_POLICY_NONE) 792 if (e_randr2_cfg->default_policy != E_RANDR2_POLICY_NONE)
739 { 793 {
@@ -752,7 +806,7 @@ _cb_screen_change_delay(void *data EINA_UNUSED)
752 { 806 {
753 printf("RRR: is lid, lid++\n"); 807 printf("RRR: is lid, lid++\n");
754 lid_screens++; 808 lid_screens++;
755 if (s->info.lid_closed) 809 if ((s->info.lid_closed) && (!s->config.ignore_disconnect))
756 { 810 {
757 printf("RRR: is lid, is closed, closed++\n"); 811 printf("RRR: is lid, is closed, closed++\n");
758 close_lid_screens++; 812 close_lid_screens++;
diff --git a/src/bin/e_randr2.h b/src/bin/e_randr2.h
index 9d32e26c5..c693e631c 100644
--- a/src/bin/e_randr2.h
+++ b/src/bin/e_randr2.h
@@ -87,6 +87,7 @@ struct _E_Randr2_Screen
87 int priority; // larger num == more important 87 int priority; // larger num == more important
88 Eina_Bool enabled E_BITFIELD; // should this monitor be enabled? 88 Eina_Bool enabled E_BITFIELD; // should this monitor be enabled?
89 Eina_Bool configured E_BITFIELD; // has screen been configured by e? 89 Eina_Bool configured E_BITFIELD; // has screen been configured by e?
90 Eina_Bool ignore_disconnect E_BITFIELD; // ignore disconnects for this screen...
90 91
91 char *profile; // profile name to use on this screen 92 char *profile; // profile name to use on this screen
92 double scale_multiplier; // if 0.0 - then dont multiply scale 93 double scale_multiplier; // if 0.0 - then dont multiply scale
@@ -115,6 +116,7 @@ struct _E_Config_Randr2_Screen
115 int priority; 116 int priority;
116 unsigned char rel_mode; 117 unsigned char rel_mode;
117 unsigned char enabled; 118 unsigned char enabled;
119 unsigned char ignore_disconnect;
118 120
119 const char *profile; 121 const char *profile;
120 double scale_multiplier; 122 double scale_multiplier;
diff --git a/src/modules/conf_randr/e_int_config_randr2.c b/src/modules/conf_randr/e_int_config_randr2.c
index 1698e3b1e..85e569c7a 100644
--- a/src/modules/conf_randr/e_int_config_randr2.c
+++ b/src/modules/conf_randr/e_int_config_randr2.c
@@ -19,6 +19,7 @@ struct _E_Config_Dialog_Data
19 Evas_Object *modes_obj; 19 Evas_Object *modes_obj;
20 Evas_Object *rotations_obj; 20 Evas_Object *rotations_obj;
21 Evas_Object *enabled_obj; 21 Evas_Object *enabled_obj;
22 Evas_Object *ignore_disconnect_obj;
22 Evas_Object *priority_obj; 23 Evas_Object *priority_obj;
23 Evas_Object *rel_mode_obj; 24 Evas_Object *rel_mode_obj;
24 Evas_Object *rel_to_obj; 25 Evas_Object *rel_to_obj;
@@ -442,6 +443,7 @@ _basic_screen_info_fill(E_Config_Dialog_Data *cfdata, E_Config_Randr2_Screen *cs
442 elm_list_go(cfdata->rotations_obj); 443 elm_list_go(cfdata->rotations_obj);
443 444
444 elm_check_state_set(cfdata->enabled_obj, cs->enabled); 445 elm_check_state_set(cfdata->enabled_obj, cs->enabled);
446 elm_check_state_set(cfdata->ignore_disconnect_obj, cs->ignore_disconnect);
445 447
446 elm_slider_value_set(cfdata->priority_obj, cs->priority); 448 elm_slider_value_set(cfdata->priority_obj, cs->priority);
447 449
@@ -746,6 +748,17 @@ _cb_enabled_changed(void *data, Evas_Object *obj, void *event EINA_UNUSED)
746} 748}
747 749
748static void 750static void
751_cb_ignore_disconnect_changed(void *data, Evas_Object *obj, void *event EINA_UNUSED)
752{
753 E_Config_Dialog_Data *cfdata = data;
754 E_Config_Randr2_Screen *cs = _config_screen_find(cfdata);
755 if (!cs) return;
756 cs->ignore_disconnect = elm_check_state_get(obj);
757 printf("RR: ignore_disconnect = %i\n", cs->ignore_disconnect);
758 e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
759}
760
761static void
749_policy_text_update(E_Config_Dialog_Data *cfdata) 762_policy_text_update(E_Config_Dialog_Data *cfdata)
750{ 763{
751 char pbuf[128]; 764 char pbuf[128];
@@ -861,6 +874,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
861 cs->priority = s->config.priority; 874 cs->priority = s->config.priority;
862 cs->rel_mode = s->config.relative.mode; 875 cs->rel_mode = s->config.relative.mode;
863 cs->enabled = s->config.enabled; 876 cs->enabled = s->config.enabled;
877 cs->ignore_disconnect = s->config.ignore_disconnect;
864 if (s->config.profile) 878 if (s->config.profile)
865 cs->profile = eina_stringshare_add(s->config.profile); 879 cs->profile = eina_stringshare_add(s->config.profile);
866 cs->scale_multiplier = s->config.scale_multiplier; 880 cs->scale_multiplier = s->config.scale_multiplier;
@@ -965,6 +979,15 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
965 evas_object_smart_callback_add(o, "changed", _cb_enabled_changed, cfdata); 979 evas_object_smart_callback_add(o, "changed", _cb_enabled_changed, cfdata);
966 cfdata->enabled_obj = o; 980 cfdata->enabled_obj = o;
967 981
982 o = elm_check_add(win);
983 evas_object_size_hint_weight_set(o, 0.0, 0.0);
984 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
985 elm_object_text_set(o, _("Ignore Disconnect"));
986 elm_table_pack(tb, o, 2, 5, 1, 1);
987 evas_object_show(o);
988 evas_object_smart_callback_add(o, "changed", _cb_ignore_disconnect_changed, cfdata);
989 cfdata->ignore_disconnect_obj = o;
990
968 o = elm_slider_add(win); 991 o = elm_slider_add(win);
969 evas_object_size_hint_weight_set(o, 0.0, 0.0); 992 evas_object_size_hint_weight_set(o, 0.0, 0.0);
970 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); 993 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
@@ -972,7 +995,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
972 elm_slider_unit_format_set(o, "%3.0f"); 995 elm_slider_unit_format_set(o, "%3.0f");
973 elm_slider_span_size_set(o, 100); 996 elm_slider_span_size_set(o, 100);
974 elm_slider_min_max_set(o, 0, 100); 997 elm_slider_min_max_set(o, 0, 100);
975 elm_table_pack(tb, o, 2, 5, 1, 1); 998 elm_table_pack(tb, o, 2, 6, 1, 1);
976 evas_object_show(o); 999 evas_object_show(o);
977 evas_object_smart_callback_add(o, "changed", _cb_priority_changed, cfdata); 1000 evas_object_smart_callback_add(o, "changed", _cb_priority_changed, cfdata);
978 cfdata->priority_obj = o; 1001 cfdata->priority_obj = o;
@@ -987,7 +1010,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
987 elm_hoversel_item_add(o, _("Right of"), NULL, ELM_ICON_NONE, _cb_rel_mode_right_of, cfdata); 1010 elm_hoversel_item_add(o, _("Right of"), NULL, ELM_ICON_NONE, _cb_rel_mode_right_of, cfdata);
988 elm_hoversel_item_add(o, _("Above"), NULL, ELM_ICON_NONE, _cb_rel_mode_above, cfdata); 1011 elm_hoversel_item_add(o, _("Above"), NULL, ELM_ICON_NONE, _cb_rel_mode_above, cfdata);
989 elm_hoversel_item_add(o, _("Below"), NULL, ELM_ICON_NONE, _cb_rel_mode_below, cfdata); 1012 elm_hoversel_item_add(o, _("Below"), NULL, ELM_ICON_NONE, _cb_rel_mode_below, cfdata);
990 elm_table_pack(tb, o, 2, 6, 1, 1); 1013 elm_table_pack(tb, o, 2, 7, 1, 1);
991 evas_object_show(o); 1014 evas_object_show(o);
992 cfdata->rel_mode_obj = o; 1015 cfdata->rel_mode_obj = o;
993 1016
@@ -1007,7 +1030,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
1007 cfdata->screen_items2 = eina_list_append(cfdata->screen_items2, it); 1030 cfdata->screen_items2 = eina_list_append(cfdata->screen_items2, it);
1008 } 1031 }
1009 } 1032 }
1010 elm_table_pack(tb, o, 2, 7, 1, 1); 1033 elm_table_pack(tb, o, 2, 8, 1, 1);
1011 evas_object_show(o); 1034 evas_object_show(o);
1012 cfdata->rel_to_obj = o; 1035 cfdata->rel_to_obj = o;
1013 1036
@@ -1018,7 +1041,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
1018 elm_slider_unit_format_set(o, "%1.1f"); 1041 elm_slider_unit_format_set(o, "%1.1f");
1019 elm_slider_span_size_set(o, 100); 1042 elm_slider_span_size_set(o, 100);
1020 elm_slider_min_max_set(o, 0.0, 1.0); 1043 elm_slider_min_max_set(o, 0.0, 1.0);
1021 elm_table_pack(tb, o, 2, 8, 1, 1); 1044 elm_table_pack(tb, o, 2, 9, 1, 1);
1022 evas_object_show(o); 1045 evas_object_show(o);
1023 evas_object_smart_callback_add(o, "changed", _cb_rel_align_changed, cfdata); 1046 evas_object_smart_callback_add(o, "changed", _cb_rel_align_changed, cfdata);
1024 cfdata->rel_align_obj = o; 1047 cfdata->rel_align_obj = o;
@@ -1028,14 +1051,14 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
1028 elm_separator_horizontal_set(o, EINA_TRUE); 1051 elm_separator_horizontal_set(o, EINA_TRUE);
1029 evas_object_size_hint_weight_set(o, 0.0, 0.0); 1052 evas_object_size_hint_weight_set(o, 0.0, 0.0);
1030 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); 1053 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
1031 elm_table_pack(tb, o, 2, 9, 1, 1); 1054 elm_table_pack(tb, o, 2, 10, 1, 1);
1032 evas_object_show(o); 1055 evas_object_show(o);
1033 1056
1034 o = elm_check_add(win); 1057 o = elm_check_add(win);
1035 evas_object_size_hint_weight_set(o, 0.0, 0.0); 1058 evas_object_size_hint_weight_set(o, 0.0, 0.0);
1036 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); 1059 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
1037 elm_object_text_set(o, _("Use Profile")); 1060 elm_object_text_set(o, _("Use Profile"));
1038 elm_table_pack(tb, o, 2, 10, 1, 1); 1061 elm_table_pack(tb, o, 2, 11, 1, 1);
1039 evas_object_show(o); 1062 evas_object_show(o);
1040 cfdata->use_profile_obj = o; 1063 cfdata->use_profile_obj = o;
1041 evas_object_smart_callback_add(o, "changed", _cb_profile_enabled_changed, cfdata); 1064 evas_object_smart_callback_add(o, "changed", _cb_profile_enabled_changed, cfdata);
@@ -1043,7 +1066,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
1043 o = elm_list_add(win); 1066 o = elm_list_add(win);
1044 evas_object_size_hint_weight_set(o, 0.0, EVAS_HINT_EXPAND); 1067 evas_object_size_hint_weight_set(o, 0.0, EVAS_HINT_EXPAND);
1045 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL); 1068 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
1046 elm_table_pack(tb, o, 2, 11, 1, 1); 1069 elm_table_pack(tb, o, 2, 12, 1, 1);
1047 evas_object_show(o); 1070 evas_object_show(o);
1048 cfdata->profile_list_obj = o; 1071 cfdata->profile_list_obj = o;
1049 1072
@@ -1051,7 +1074,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
1051 evas_object_size_hint_weight_set(o, 0.0, 0.0); 1074 evas_object_size_hint_weight_set(o, 0.0, 0.0);
1052 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5); 1075 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
1053 elm_object_text_set(o, _("Custom Scale")); 1076 elm_object_text_set(o, _("Custom Scale"));
1054 elm_table_pack(tb, o, 2, 12, 1, 1); 1077 elm_table_pack(tb, o, 2, 13, 1, 1);
1055 evas_object_show(o); 1078 evas_object_show(o);
1056 cfdata->scale_custom_obj = o; 1079 cfdata->scale_custom_obj = o;
1057 evas_object_smart_callback_add(o, "changed", _cb_custom_scale_changed, cfdata); 1080 evas_object_smart_callback_add(o, "changed", _cb_custom_scale_changed, cfdata);
@@ -1064,7 +1087,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
1064 elm_slider_span_size_set(o, 100); 1087 elm_slider_span_size_set(o, 100);
1065 elm_slider_min_max_set(o, 0.5, 5.5); 1088 elm_slider_min_max_set(o, 0.5, 5.5);
1066 elm_slider_value_set(o, elm_config_scale_get()); 1089 elm_slider_value_set(o, elm_config_scale_get());
1067 elm_table_pack(tb, o, 2, 13, 1, 1); 1090 elm_table_pack(tb, o, 2, 14, 1, 1);
1068 evas_object_show(o); 1091 evas_object_show(o);
1069 cfdata->scale_value_obj = o; 1092 cfdata->scale_value_obj = o;
1070 evas_object_smart_callback_add(o, "changed", _cb_scale_value_changed, cfdata); 1093 evas_object_smart_callback_add(o, "changed", _cb_scale_value_changed, cfdata);
@@ -1167,6 +1190,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
1167 cs->scale_multiplier = cs2->scale_multiplier; 1190 cs->scale_multiplier = cs2->scale_multiplier;
1168 printf("APPLY %s .... rel mode %i\n", cs->id, cs->rel_mode); 1191 printf("APPLY %s .... rel mode %i\n", cs->id, cs->rel_mode);
1169 cs->enabled = cs2->enabled; 1192 cs->enabled = cs2->enabled;
1193 cs->ignore_disconnect = cs2->ignore_disconnect;
1170 } 1194 }
1171 e_randr2_config_save(); 1195 e_randr2_config_save();
1172 e_randr2_config_apply(); 1196 e_randr2_config_apply();