summaryrefslogtreecommitdiff
path: root/src
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 /src
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.
Diffstat (limited to 'src')
-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();