summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-10-19 17:31:40 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-10-19 17:32:47 +0900
commit64529eac19ced56e85397e1dad3409857010edae (patch)
tree7a04ba3f8265a51904e11a366cb16e59fe48e201
parenta04d8a929a119cc46a0fa1553cf3e6d9148eca9b (diff)
elm config - finish flagging all other values that can be set by api
this now means any app that called elm_config_*set on any field at all will keep what it set forever until it changes it even if shared/core config changed.
-rw-r--r--src/lib/elementary/elm_config.c204
-rw-r--r--src/lib/elementary/elm_priv.h98
2 files changed, 300 insertions, 2 deletions
diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c
index 89e365312e..19332cac5d 100644
--- a/src/lib/elementary/elm_config.c
+++ b/src/lib/elementary/elm_config.c
@@ -980,6 +980,7 @@ static Eina_Bool _elm_config_atspi_mode_get(void)
980 980
981static void _elm_config_atspi_mode_set(Eina_Bool is_enabled) 981static void _elm_config_atspi_mode_set(Eina_Bool is_enabled)
982{ 982{
983 _elm_config->priv.atspi_mode = EINA_TRUE;
983 is_enabled = !!is_enabled; 984 is_enabled = !!is_enabled;
984 if (_elm_config->atspi_mode == is_enabled) return; 985 if (_elm_config->atspi_mode == is_enabled) return;
985 _elm_config->atspi_mode = is_enabled; 986 _elm_config->atspi_mode = is_enabled;
@@ -1838,6 +1839,14 @@ _elm_config_reload_do(void)
1838 if (prev_config->priv.xxx) { \ 1839 if (prev_config->priv.xxx) { \
1839 eina_stringshare_replace(&(_elm_config->xxx), prev_config->xxx); \ 1840 eina_stringshare_replace(&(_elm_config->xxx), prev_config->xxx); \
1840 } 1841 }
1842 Elm_Font_Overlay *fo;
1843 Elm_Color_Overlay *co;
1844 Elm_Custom_Palette *palette;
1845 Elm_Color_RGBA *color;
1846 Elm_Config_Bindings_Widget *wb;
1847 Elm_Config_Binding_Key *kb;
1848 Elm_Config_Binding_Modifier *mb;
1849
1841 KEEP_STR(engine); 1850 KEEP_STR(engine);
1842 KEEP_STR(accel); 1851 KEEP_STR(accel);
1843 KEEP_STR(web_backend); 1852 KEEP_STR(web_backend);
@@ -1867,6 +1876,148 @@ _elm_config_reload_do(void)
1867 KEEP_VAL(scroll_smooth_amount); 1876 KEEP_VAL(scroll_smooth_amount);
1868 KEEP_VAL(scroll_smooth_time_window); 1877 KEEP_VAL(scroll_smooth_time_window);
1869 KEEP_VAL(scale); 1878 KEEP_VAL(scale);
1879 if (prev_config->priv.font_overlays)
1880 {
1881 EINA_LIST_FREE(_elm_config->font_overlays, fo)
1882 {
1883 eina_stringshare_del(fo->text_class);
1884 eina_stringshare_del(fo->font);
1885 free(fo);
1886 }
1887 _elm_config->font_overlays = prev_config->font_overlays;
1888 prev_config->font_overlays = NULL;
1889 }
1890 KEEP_VAL(font_hinting);
1891 KEEP_VAL(cache_flush_poll_interval);
1892
1893 KEEP_VAL(cache_flush_enable);
1894 KEEP_VAL(image_cache);
1895 KEEP_VAL(font_cache);
1896 KEEP_VAL(edje_cache);
1897 KEEP_VAL(edje_collection_cache);
1898 KEEP_VAL(finger_size);
1899 KEEP_VAL(tooltip_delay);
1900 KEEP_VAL(cursor_engine_only);
1901 KEEP_VAL(focus_highlight_enable);
1902 KEEP_VAL(focus_highlight_animate);
1903 KEEP_VAL(focus_highlight_clip_disable);
1904 KEEP_VAL(focus_move_policy);
1905 KEEP_VAL(item_select_on_focus_disable);
1906 KEEP_VAL(first_item_focus_on_first_focus_in);
1907 KEEP_VAL(focus_autoscroll_mode);
1908 KEEP_VAL(slider_indicator_visible_mode);
1909 KEEP_VAL(popup_horizontal_align);
1910 KEEP_VAL(popup_vertical_align);
1911 KEEP_VAL(popup_scrollable);
1912 KEEP_VAL(toolbar_shrink_mode);
1913 KEEP_VAL(fileselector_expand_enable);
1914 KEEP_VAL(fileselector_double_tap_navigation_enable);
1915 KEEP_VAL(inwin_dialogs_enable);
1916 KEEP_VAL(icon_size);
1917 KEEP_VAL(longpress_timeout);
1918 KEEP_VAL(effect_enable);
1919 KEEP_VAL(desktop_entry);
1920 KEEP_VAL(context_menu_disabled);
1921 KEEP_VAL(password_show_last);
1922 KEEP_VAL(password_show_last_timeout);
1923 KEEP_VAL(glayer_zoom_finger_enable);
1924 KEEP_VAL(glayer_zoom_finger_factor);
1925 KEEP_VAL(glayer_zoom_wheel_factor);
1926 KEEP_VAL(glayer_zoom_distance_tolerance);
1927 KEEP_VAL(glayer_rotate_finger_enable);
1928 KEEP_VAL(glayer_rotate_angular_tolerance);
1929 KEEP_VAL(glayer_line_min_length);
1930 KEEP_VAL(glayer_line_distance_tolerance);
1931 KEEP_VAL(glayer_line_angular_tolerance);
1932 KEEP_VAL(glayer_flick_time_limit_ms);
1933 KEEP_VAL(glayer_long_tap_start_timeout);
1934 KEEP_VAL(glayer_double_tap_timeout);
1935 KEEP_VAL(access_mode);
1936 KEEP_VAL(glayer_continues_enable);
1937 KEEP_VAL(week_start);
1938 KEEP_VAL(weekend_start);
1939 KEEP_VAL(weekend_len);
1940 KEEP_VAL(year_min);
1941 KEEP_VAL(year_max);
1942 if (prev_config->priv.color_overlays)
1943 {
1944 EINA_LIST_FREE(_elm_config->color_overlays, co)
1945 {
1946 if (co->color_class) eina_stringshare_del(co->color_class);
1947 free(co);
1948 }
1949 _elm_config->color_overlays = prev_config->color_overlays;
1950 prev_config->color_overlays = NULL;
1951 }
1952 if (prev_config->priv.color_palette)
1953 {
1954 EINA_LIST_FREE(_elm_config->color_palette, palette)
1955 {
1956 eina_stringshare_del(palette->palette_name);
1957 EINA_LIST_FREE(palette->color_list, color) free(color);
1958 free(palette);
1959 }
1960 _elm_config->color_palette = prev_config->color_palette;
1961 prev_config->color_palette = NULL;
1962 }
1963
1964 KEEP_VAL(softcursor_mode);
1965 KEEP_VAL(auto_norender_withdrawn);
1966 KEEP_VAL(auto_norender_iconified_same_as_withdrawn);
1967 KEEP_VAL(auto_flush_withdrawn);
1968 KEEP_VAL(auto_dump_withdrawn);
1969 KEEP_VAL(auto_throttle);
1970 KEEP_VAL(auto_throttle_amount);
1971 KEEP_STR(indicator_service_0);
1972 KEEP_STR(indicator_service_90);
1973 KEEP_STR(indicator_service_180);
1974 KEEP_STR(indicator_service_270);
1975 KEEP_VAL(selection_clear_enable);
1976 KEEP_VAL(disable_external_menu);
1977 KEEP_VAL(clouseau_enable);
1978 KEEP_VAL(magnifier_enable);
1979 KEEP_VAL(magnifier_scale);
1980 KEEP_VAL(audio_mute_effect);
1981 KEEP_VAL(audio_mute_background);
1982 KEEP_VAL(audio_mute_music);
1983 KEEP_VAL(audio_mute_foreground);
1984 KEEP_VAL(audio_mute_interface);
1985 KEEP_VAL(audio_mute_input);
1986 KEEP_VAL(audio_mute_alert);
1987 KEEP_VAL(audio_mute_all);
1988 KEEP_VAL(win_auto_focus_enable);
1989 KEEP_VAL(win_auto_focus_animate);
1990 KEEP_VAL(transition_duration_factor);
1991 KEEP_VAL(naviframe_prev_btn_auto_pushed);
1992 KEEP_VAL(spinner_min_max_filter_enable);
1993 if (prev_config->priv.bindings)
1994 {
1995 EINA_LIST_FREE(_elm_config->bindings, wb)
1996 {
1997 eina_stringshare_del(wb->name);
1998 EINA_LIST_FREE(wb->key_bindings, kb)
1999 {
2000 eina_stringshare_del(kb->key);
2001 eina_stringshare_del(kb->action);
2002 eina_stringshare_del(kb->params);
2003 EINA_LIST_FREE(kb->modifiers, mb)
2004 {
2005 eina_stringshare_del(mb->mod);
2006 free(mb);
2007 }
2008 free(kb);
2009 }
2010 free(wb);
2011 }
2012 _elm_config->bindings = prev_config->bindings;
2013 prev_config->bindings = NULL;
2014 }
2015 KEEP_VAL(atspi_mode);
2016 KEEP_VAL(gl_depth);
2017 KEEP_VAL(gl_stencil);
2018 KEEP_VAL(gl_msaa);
2019 KEEP_STR(icon_theme);
2020 KEEP_VAL(entry_select_allow);
1870 2021
1871 _elm_config->priv = prev_config->priv; 2022 _elm_config->priv = prev_config->priv;
1872 _config_free(prev_config); 2023 _config_free(prev_config);
@@ -2737,6 +2888,7 @@ elm_config_cursor_engine_only_get(void)
2737EAPI void 2888EAPI void
2738elm_config_cursor_engine_only_set(Eina_Bool engine_only) 2889elm_config_cursor_engine_only_set(Eina_Bool engine_only)
2739{ 2890{
2891 _elm_config->priv.cursor_engine_only = EINA_TRUE;
2740 engine_only = !!engine_only; 2892 engine_only = !!engine_only;
2741 _elm_config->cursor_engine_only = engine_only; 2893 _elm_config->cursor_engine_only = engine_only;
2742} 2894}
@@ -2750,6 +2902,7 @@ elm_config_tooltip_delay_get(void)
2750EAPI void 2902EAPI void
2751elm_config_tooltip_delay_set(double delay) 2903elm_config_tooltip_delay_set(double delay)
2752{ 2904{
2905 _elm_config->priv.tooltip_delay = EINA_TRUE;
2753 if (delay < 0.0) return; 2906 if (delay < 0.0) return;
2754 _elm_config->tooltip_delay = delay; 2907 _elm_config->tooltip_delay = delay;
2755} 2908}
@@ -2782,6 +2935,7 @@ elm_config_icon_theme_get(void)
2782EAPI void 2935EAPI void
2783elm_config_icon_theme_set(const char *theme) 2936elm_config_icon_theme_set(const char *theme)
2784{ 2937{
2938 _elm_config->priv.icon_theme = EINA_TRUE;
2785 eina_stringshare_del(_elm_config->icon_theme); 2939 eina_stringshare_del(_elm_config->icon_theme);
2786 2940
2787 if (theme) 2941 if (theme)
@@ -2799,6 +2953,7 @@ elm_config_password_show_last_get(void)
2799EAPI void 2953EAPI void
2800elm_config_password_show_last_set(Eina_Bool password_show_last) 2954elm_config_password_show_last_set(Eina_Bool password_show_last)
2801{ 2955{
2956 _elm_config->priv.password_show_last = EINA_TRUE;
2802 if (_elm_config->password_show_last == password_show_last) return; 2957 if (_elm_config->password_show_last == password_show_last) return;
2803 _elm_config->password_show_last = password_show_last; 2958 _elm_config->password_show_last = password_show_last;
2804 edje_password_show_last_set(_elm_config->password_show_last); 2959 edje_password_show_last_set(_elm_config->password_show_last);
@@ -2813,6 +2968,7 @@ elm_config_password_show_last_timeout_get(void)
2813EAPI void 2968EAPI void
2814elm_config_password_show_last_timeout_set(double password_show_last_timeout) 2969elm_config_password_show_last_timeout_set(double password_show_last_timeout)
2815{ 2970{
2971 _elm_config->priv.password_show_last_timeout = EINA_TRUE;
2816 if (password_show_last_timeout < 0.0) return; 2972 if (password_show_last_timeout < 0.0) return;
2817 if (_elm_config->password_show_last_timeout == password_show_last_timeout) return; 2973 if (_elm_config->password_show_last_timeout == password_show_last_timeout) return;
2818 _elm_config->password_show_last_timeout = password_show_last_timeout; 2974 _elm_config->password_show_last_timeout = password_show_last_timeout;
@@ -2946,6 +3102,7 @@ elm_config_access_get(void)
2946EAPI void 3102EAPI void
2947elm_config_access_set(Eina_Bool is_access) 3103elm_config_access_set(Eina_Bool is_access)
2948{ 3104{
3105 _elm_config->priv.access_mode = EINA_TRUE;
2949 _elm_config_access_set(is_access); 3106 _elm_config_access_set(is_access);
2950} 3107}
2951 3108
@@ -2970,6 +3127,7 @@ elm_config_selection_unfocused_clear_get(void)
2970EAPI void 3127EAPI void
2971elm_config_selection_unfocused_clear_set(Eina_Bool enabled) 3128elm_config_selection_unfocused_clear_set(Eina_Bool enabled)
2972{ 3129{
3130 _elm_config->priv.selection_clear_enable = EINA_TRUE;
2973 _elm_config_selection_unfocused_clear_set(enabled); 3131 _elm_config_selection_unfocused_clear_set(enabled);
2974} 3132}
2975 3133
@@ -2978,6 +3136,7 @@ elm_config_font_overlay_set(const char *text_class,
2978 const char *font, 3136 const char *font,
2979 Evas_Font_Size size) 3137 Evas_Font_Size size)
2980{ 3138{
3139 _elm_config->priv.font_overlays = EINA_TRUE;
2981 EINA_SAFETY_ON_NULL_RETURN(text_class); 3140 EINA_SAFETY_ON_NULL_RETURN(text_class);
2982 _elm_config_font_overlay_set(text_class, font, size); 3141 _elm_config_font_overlay_set(text_class, font, size);
2983} 3142}
@@ -2985,6 +3144,7 @@ elm_config_font_overlay_set(const char *text_class,
2985EAPI void 3144EAPI void
2986elm_config_font_overlay_unset(const char *text_class) 3145elm_config_font_overlay_unset(const char *text_class)
2987{ 3146{
3147 _elm_config->priv.font_overlays = EINA_TRUE;
2988 EINA_SAFETY_ON_NULL_RETURN(text_class); 3148 EINA_SAFETY_ON_NULL_RETURN(text_class);
2989 _elm_config_font_overlay_remove(text_class); 3149 _elm_config_font_overlay_remove(text_class);
2990} 3150}
@@ -3020,6 +3180,7 @@ elm_config_color_overlay_set(const char *color_class,
3020 int r2, int g2, int b2, int a2, 3180 int r2, int g2, int b2, int a2,
3021 int r3, int g3, int b3, int a3) 3181 int r3, int g3, int b3, int a3)
3022{ 3182{
3183 _elm_config->priv.color_overlays = EINA_TRUE;
3023 EINA_SAFETY_ON_NULL_RETURN(color_class); 3184 EINA_SAFETY_ON_NULL_RETURN(color_class);
3024 _elm_config_color_overlay_set(color_class, 3185 _elm_config_color_overlay_set(color_class,
3025 r, g, b, a, 3186 r, g, b, a,
@@ -3030,6 +3191,7 @@ elm_config_color_overlay_set(const char *color_class,
3030EAPI void 3191EAPI void
3031elm_config_color_overlay_unset(const char *color_class) 3192elm_config_color_overlay_unset(const char *color_class)
3032{ 3193{
3194 _elm_config->priv.color_overlays = EINA_TRUE;
3033 EINA_SAFETY_ON_NULL_RETURN(color_class); 3195 EINA_SAFETY_ON_NULL_RETURN(color_class);
3034 _elm_config_color_overlay_remove(color_class); 3196 _elm_config_color_overlay_remove(color_class);
3035} 3197}
@@ -3049,6 +3211,7 @@ elm_config_finger_size_get(void)
3049EAPI void 3211EAPI void
3050elm_config_finger_size_set(Evas_Coord size) 3212elm_config_finger_size_set(Evas_Coord size)
3051{ 3213{
3214 _elm_config->priv.finger_size = EINA_TRUE;
3052 if (size < 0) return; 3215 if (size < 0) return;
3053 if (_elm_config->finger_size == size) return; 3216 if (_elm_config->finger_size == size) return;
3054 _elm_config->finger_size = size; 3217 _elm_config->finger_size = size;
@@ -3064,6 +3227,7 @@ elm_config_cache_flush_interval_get(void)
3064EAPI void 3227EAPI void
3065elm_config_cache_flush_interval_set(int size) 3228elm_config_cache_flush_interval_set(int size)
3066{ 3229{
3230 _elm_config->priv.cache_flush_poll_interval = EINA_TRUE;
3067 EINA_SAFETY_ON_FALSE_RETURN(size > 0); 3231 EINA_SAFETY_ON_FALSE_RETURN(size > 0);
3068 if (_elm_config->cache_flush_poll_interval == size) return; 3232 if (_elm_config->cache_flush_poll_interval == size) return;
3069 _elm_config->cache_flush_poll_interval = size; 3233 _elm_config->cache_flush_poll_interval = size;
@@ -3080,6 +3244,7 @@ elm_config_cache_flush_enabled_get(void)
3080EAPI void 3244EAPI void
3081elm_config_cache_flush_enabled_set(Eina_Bool enabled) 3245elm_config_cache_flush_enabled_set(Eina_Bool enabled)
3082{ 3246{
3247 _elm_config->priv.cache_flush_enable = EINA_TRUE;
3083 enabled = !!enabled; 3248 enabled = !!enabled;
3084 if (_elm_config->cache_flush_enable == enabled) return; 3249 if (_elm_config->cache_flush_enable == enabled) return;
3085 _elm_config->cache_flush_enable = enabled; 3250 _elm_config->cache_flush_enable = enabled;
@@ -3096,6 +3261,7 @@ elm_config_cache_font_cache_size_get(void)
3096EAPI void 3261EAPI void
3097elm_config_cache_font_cache_size_set(int size) 3262elm_config_cache_font_cache_size_set(int size)
3098{ 3263{
3264 _elm_config->priv.font_cache = EINA_TRUE;
3099 if (size < 0) return; 3265 if (size < 0) return;
3100 if (_elm_config->font_cache == size) return; 3266 if (_elm_config->font_cache == size) return;
3101 _elm_config->font_cache = size; 3267 _elm_config->font_cache = size;
@@ -3112,6 +3278,7 @@ elm_config_cache_image_cache_size_get(void)
3112EAPI void 3278EAPI void
3113elm_config_cache_image_cache_size_set(int size) 3279elm_config_cache_image_cache_size_set(int size)
3114{ 3280{
3281 _elm_config->priv.image_cache = EINA_TRUE;
3115 if (size < 0) return; 3282 if (size < 0) return;
3116 if (_elm_config->image_cache == size) return; 3283 if (_elm_config->image_cache == size) return;
3117 _elm_config->image_cache = size; 3284 _elm_config->image_cache = size;
@@ -3125,6 +3292,7 @@ elm_config_font_hint_type_set(int type)
3125 Eina_List *l; 3292 Eina_List *l;
3126 Evas_Object *win; 3293 Evas_Object *win;
3127 3294
3295 _elm_config->priv.font_hinting = EINA_TRUE;
3128 if ((type < 0) || (type > 2)) return; 3296 if ((type < 0) || (type > 2)) return;
3129 _elm_config->font_hinting = type; 3297 _elm_config->font_hinting = type;
3130 3298
@@ -3150,6 +3318,7 @@ elm_config_cache_edje_file_cache_size_get()
3150EAPI void 3318EAPI void
3151elm_config_cache_edje_file_cache_size_set(int size) 3319elm_config_cache_edje_file_cache_size_set(int size)
3152{ 3320{
3321 _elm_config->priv.edje_cache = EINA_TRUE;
3153 if (size < 0) return; 3322 if (size < 0) return;
3154 if (_elm_config->edje_cache == size) return; 3323 if (_elm_config->edje_cache == size) return;
3155 _elm_config->edje_cache = size; 3324 _elm_config->edje_cache = size;
@@ -3166,6 +3335,7 @@ elm_config_cache_edje_collection_cache_size_get(void)
3166EAPI void 3335EAPI void
3167elm_config_cache_edje_collection_cache_size_set(int size) 3336elm_config_cache_edje_collection_cache_size_set(int size)
3168{ 3337{
3338 _elm_config->priv.edje_collection_cache = EINA_TRUE;
3169 if (_elm_config->edje_collection_cache == size) return; 3339 if (_elm_config->edje_collection_cache == size) return;
3170 _elm_config->edje_collection_cache = size; 3340 _elm_config->edje_collection_cache = size;
3171 3341
@@ -3207,6 +3377,7 @@ elm_config_focus_highlight_enabled_get(void)
3207EAPI void 3377EAPI void
3208elm_config_focus_highlight_enabled_set(Eina_Bool enable) 3378elm_config_focus_highlight_enabled_set(Eina_Bool enable)
3209{ 3379{
3380 _elm_config->priv.focus_highlight_enable = EINA_TRUE;
3210 _elm_config->focus_highlight_enable = !!enable; 3381 _elm_config->focus_highlight_enable = !!enable;
3211} 3382}
3212 3383
@@ -3219,6 +3390,7 @@ elm_config_focus_highlight_animate_get(void)
3219EAPI void 3390EAPI void
3220elm_config_focus_highlight_animate_set(Eina_Bool animate) 3391elm_config_focus_highlight_animate_set(Eina_Bool animate)
3221{ 3392{
3393 _elm_config->priv.focus_highlight_animate = EINA_TRUE;
3222 _elm_config->focus_highlight_animate = !!animate; 3394 _elm_config->focus_highlight_animate = !!animate;
3223} 3395}
3224 3396
@@ -3231,6 +3403,7 @@ elm_config_focus_highlight_clip_disabled_get(void)
3231EAPI void 3403EAPI void
3232elm_config_focus_highlight_clip_disabled_set(Eina_Bool disable) 3404elm_config_focus_highlight_clip_disabled_set(Eina_Bool disable)
3233{ 3405{
3406 _elm_config->priv.focus_highlight_clip_disable = EINA_TRUE;
3234 _elm_config->focus_highlight_clip_disable = !!disable; 3407 _elm_config->focus_highlight_clip_disable = !!disable;
3235} 3408}
3236 3409
@@ -3243,6 +3416,7 @@ elm_config_focus_move_policy_get(void)
3243EAPI void 3416EAPI void
3244elm_config_focus_move_policy_set(Elm_Focus_Move_Policy policy) 3417elm_config_focus_move_policy_set(Elm_Focus_Move_Policy policy)
3245{ 3418{
3419 _elm_config->priv.focus_move_policy = EINA_TRUE;
3246 _elm_config->focus_move_policy = policy; 3420 _elm_config->focus_move_policy = policy;
3247 _elm_win_focus_reconfigure(); 3421 _elm_win_focus_reconfigure();
3248} 3422}
@@ -3256,6 +3430,7 @@ elm_config_item_select_on_focus_disabled_get(void)
3256EAPI void 3430EAPI void
3257elm_config_item_select_on_focus_disabled_set(Eina_Bool disable) 3431elm_config_item_select_on_focus_disabled_set(Eina_Bool disable)
3258{ 3432{
3433 _elm_config->priv.item_select_on_focus_disable = EINA_TRUE;
3259 _elm_config->item_select_on_focus_disable = !!disable; 3434 _elm_config->item_select_on_focus_disable = !!disable;
3260} 3435}
3261 3436
@@ -3268,6 +3443,7 @@ elm_config_first_item_focus_on_first_focusin_get(void)
3268EAPI void 3443EAPI void
3269elm_config_first_item_focus_on_first_focusin_set(Eina_Bool enable) 3444elm_config_first_item_focus_on_first_focusin_set(Eina_Bool enable)
3270{ 3445{
3446 _elm_config->priv.first_item_focus_on_first_focus_in = EINA_TRUE;
3271 _elm_config->first_item_focus_on_first_focus_in = !!enable; 3447 _elm_config->first_item_focus_on_first_focus_in = !!enable;
3272} 3448}
3273 3449
@@ -3469,6 +3645,7 @@ elm_config_context_menu_disabled_get(void)
3469EAPI void 3645EAPI void
3470elm_config_context_menu_disabled_set(Eina_Bool disabled) 3646elm_config_context_menu_disabled_set(Eina_Bool disabled)
3471{ 3647{
3648 _elm_config->priv.context_menu_disabled = EINA_TRUE;
3472 _elm_config->context_menu_disabled = !!disabled; 3649 _elm_config->context_menu_disabled = !!disabled;
3473} 3650}
3474 3651
@@ -3600,6 +3777,7 @@ elm_config_focus_autoscroll_mode_get(void)
3600EAPI void 3777EAPI void
3601elm_config_slider_indicator_visible_mode_set(Elm_Slider_Indicator_Visible_Mode mode) 3778elm_config_slider_indicator_visible_mode_set(Elm_Slider_Indicator_Visible_Mode mode)
3602{ 3779{
3780 _elm_config->priv.slider_indicator_visible_mode = EINA_TRUE;
3603 _elm_config->slider_indicator_visible_mode = mode; 3781 _elm_config->slider_indicator_visible_mode = mode;
3604} 3782}
3605 3783
@@ -3612,12 +3790,14 @@ elm_config_slider_indicator_visible_mode_get(void)
3612EAPI void 3790EAPI void
3613elm_config_focus_autoscroll_mode_set(Elm_Focus_Autoscroll_Mode mode) 3791elm_config_focus_autoscroll_mode_set(Elm_Focus_Autoscroll_Mode mode)
3614{ 3792{
3793 _elm_config->priv.focus_autoscroll_mode = EINA_TRUE;
3615 _elm_config->focus_autoscroll_mode = mode; 3794 _elm_config->focus_autoscroll_mode = mode;
3616} 3795}
3617 3796
3618EAPI void 3797EAPI void
3619elm_config_longpress_timeout_set(double longpress_timeout) 3798elm_config_longpress_timeout_set(double longpress_timeout)
3620{ 3799{
3800 _elm_config->priv.longpress_timeout = EINA_TRUE;
3621 _elm_config->longpress_timeout = longpress_timeout; 3801 _elm_config->longpress_timeout = longpress_timeout;
3622} 3802}
3623 3803
@@ -3630,6 +3810,7 @@ elm_config_longpress_timeout_get(void)
3630EAPI void 3810EAPI void
3631elm_config_softcursor_mode_set(Elm_Softcursor_Mode mode) 3811elm_config_softcursor_mode_set(Elm_Softcursor_Mode mode)
3632{ 3812{
3813 _elm_config->priv.softcursor_mode = EINA_TRUE;
3633 _elm_config->softcursor_mode = mode; 3814 _elm_config->softcursor_mode = mode;
3634} 3815}
3635 3816
@@ -3648,6 +3829,7 @@ elm_config_disable_external_menu_get(void)
3648EAPI void 3829EAPI void
3649elm_config_disable_external_menu_set(Eina_Bool disable) 3830elm_config_disable_external_menu_set(Eina_Bool disable)
3650{ 3831{
3832 _elm_config->priv.disable_external_menu = EINA_TRUE;
3651 _elm_config->disable_external_menu = !!disable; 3833 _elm_config->disable_external_menu = !!disable;
3652} 3834}
3653 3835
@@ -3660,6 +3842,7 @@ elm_config_clouseau_enabled_get(void)
3660EAPI void 3842EAPI void
3661elm_config_clouseau_enabled_set(Eina_Bool enable) 3843elm_config_clouseau_enabled_set(Eina_Bool enable)
3662{ 3844{
3845 _elm_config->priv.clouseau_enable = EINA_TRUE;
3663 _elm_config->clouseau_enable = !!enable; 3846 _elm_config->clouseau_enable = !!enable;
3664 _elm_clouseau_reload(); 3847 _elm_clouseau_reload();
3665} 3848}
@@ -3673,6 +3856,7 @@ elm_config_glayer_long_tap_start_timeout_get(void)
3673EAPI void 3856EAPI void
3674elm_config_glayer_long_tap_start_timeout_set(double long_tap_timeout) 3857elm_config_glayer_long_tap_start_timeout_set(double long_tap_timeout)
3675{ 3858{
3859 _elm_config->priv.glayer_long_tap_start_timeout = EINA_TRUE;
3676 _elm_config->glayer_long_tap_start_timeout = long_tap_timeout; 3860 _elm_config->glayer_long_tap_start_timeout = long_tap_timeout;
3677} 3861}
3678 3862
@@ -3685,6 +3869,7 @@ elm_config_glayer_double_tap_timeout_get(void)
3685EAPI void 3869EAPI void
3686elm_config_glayer_double_tap_timeout_set(double double_tap_timeout) 3870elm_config_glayer_double_tap_timeout_set(double double_tap_timeout)
3687{ 3871{
3872 _elm_config->priv.glayer_double_tap_timeout = EINA_TRUE;
3688 _elm_config->glayer_double_tap_timeout = double_tap_timeout; 3873 _elm_config->glayer_double_tap_timeout = double_tap_timeout;
3689} 3874}
3690 3875
@@ -3697,6 +3882,7 @@ elm_config_magnifier_enable_get(void)
3697EAPI void 3882EAPI void
3698elm_config_magnifier_enable_set(Eina_Bool enable) 3883elm_config_magnifier_enable_set(Eina_Bool enable)
3699{ 3884{
3885 _elm_config->priv.magnifier_enable = EINA_TRUE;
3700 _elm_config->magnifier_enable = !!enable; 3886 _elm_config->magnifier_enable = !!enable;
3701} 3887}
3702 3888
@@ -3709,6 +3895,7 @@ elm_config_magnifier_scale_get(void)
3709EAPI void 3895EAPI void
3710elm_config_magnifier_scale_set(double scale) 3896elm_config_magnifier_scale_set(double scale)
3711{ 3897{
3898 _elm_config->priv.magnifier_scale = EINA_TRUE;
3712 _elm_config->magnifier_scale = scale; 3899 _elm_config->magnifier_scale = scale;
3713} 3900}
3714 3901
@@ -3753,27 +3940,35 @@ elm_config_audio_mute_set(Edje_Channel channel, Eina_Bool mute)
3753 switch (channel) 3940 switch (channel)
3754 { 3941 {
3755 case EDJE_CHANNEL_EFFECT: 3942 case EDJE_CHANNEL_EFFECT:
3943 _elm_config->priv.audio_mute_effect = EINA_TRUE;
3756 _elm_config->audio_mute_effect = mute; 3944 _elm_config->audio_mute_effect = mute;
3757 break; 3945 break;
3758 case EDJE_CHANNEL_BACKGROUND: 3946 case EDJE_CHANNEL_BACKGROUND:
3947 _elm_config->priv.audio_mute_background = EINA_TRUE;
3759 _elm_config->audio_mute_background = mute; 3948 _elm_config->audio_mute_background = mute;
3760 break; 3949 break;
3761 case EDJE_CHANNEL_MUSIC: 3950 case EDJE_CHANNEL_MUSIC:
3951 _elm_config->priv.audio_mute_music = EINA_TRUE;
3762 _elm_config->audio_mute_music = mute; 3952 _elm_config->audio_mute_music = mute;
3763 break; 3953 break;
3764 case EDJE_CHANNEL_FOREGROUND: 3954 case EDJE_CHANNEL_FOREGROUND:
3955 _elm_config->priv.audio_mute_foreground = EINA_TRUE;
3765 _elm_config->audio_mute_foreground = mute; 3956 _elm_config->audio_mute_foreground = mute;
3766 break; 3957 break;
3767 case EDJE_CHANNEL_INTERFACE: 3958 case EDJE_CHANNEL_INTERFACE:
3959 _elm_config->priv.audio_mute_interface = EINA_TRUE;
3768 _elm_config->audio_mute_interface = mute; 3960 _elm_config->audio_mute_interface = mute;
3769 break; 3961 break;
3770 case EDJE_CHANNEL_INPUT: 3962 case EDJE_CHANNEL_INPUT:
3963 _elm_config->priv.audio_mute_input = EINA_TRUE;
3771 _elm_config->audio_mute_input = mute; 3964 _elm_config->audio_mute_input = mute;
3772 break; 3965 break;
3773 case EDJE_CHANNEL_ALERT: 3966 case EDJE_CHANNEL_ALERT:
3967 _elm_config->priv.audio_mute_alert = EINA_TRUE;
3774 _elm_config->audio_mute_alert = mute; 3968 _elm_config->audio_mute_alert = mute;
3775 break; 3969 break;
3776 case EDJE_CHANNEL_ALL: 3970 case EDJE_CHANNEL_ALL:
3971 _elm_config->priv.audio_mute_all = EINA_TRUE;
3777 _elm_config->audio_mute_all = mute; 3972 _elm_config->audio_mute_all = mute;
3778 break; 3973 break;
3779 default: 3974 default:
@@ -3791,6 +3986,7 @@ elm_config_window_auto_focus_enable_get(void)
3791EAPI void 3986EAPI void
3792elm_config_window_auto_focus_enable_set(Eina_Bool enable) 3987elm_config_window_auto_focus_enable_set(Eina_Bool enable)
3793{ 3988{
3989 _elm_config->priv.win_auto_focus_enable = EINA_TRUE;
3794 _elm_config->win_auto_focus_enable = enable; 3990 _elm_config->win_auto_focus_enable = enable;
3795} 3991}
3796 3992
@@ -3803,6 +3999,7 @@ elm_config_window_auto_focus_animate_get(void)
3803EAPI void 3999EAPI void
3804elm_config_window_auto_focus_animate_set(Eina_Bool enable) 4000elm_config_window_auto_focus_animate_set(Eina_Bool enable)
3805{ 4001{
4002 _elm_config->priv.win_auto_focus_animate = EINA_TRUE;
3806 _elm_config->win_auto_focus_animate = enable; 4003 _elm_config->win_auto_focus_animate = enable;
3807} 4004}
3808 4005
@@ -3815,6 +4012,7 @@ elm_config_popup_scrollable_get(void)
3815EAPI void 4012EAPI void
3816elm_config_popup_scrollable_set(Eina_Bool scrollable) 4013elm_config_popup_scrollable_set(Eina_Bool scrollable)
3817{ 4014{
4015 _elm_config->priv.popup_scrollable = EINA_TRUE;
3818 _elm_config->popup_scrollable = scrollable; 4016 _elm_config->popup_scrollable = scrollable;
3819} 4017}
3820 4018
@@ -4308,6 +4506,9 @@ EAPI void
4308elm_config_accel_preference_set(const char *pref) 4506elm_config_accel_preference_set(const char *pref)
4309{ 4507{
4310 _elm_config->priv.accel = EINA_TRUE; 4508 _elm_config->priv.accel = EINA_TRUE;
4509 _elm_config->priv.gl_depth = EINA_TRUE;
4510 _elm_config->priv.gl_stencil = EINA_TRUE;
4511 _elm_config->priv.gl_msaa = EINA_TRUE;
4311 if (pref) 4512 if (pref)
4312 { 4513 {
4313 Eina_Bool hw; 4514 Eina_Bool hw;
@@ -4360,6 +4561,7 @@ elm_config_indicator_service_get(int rotation)
4360EAPI void 4561EAPI void
4361elm_config_transition_duration_factor_set(double factor) 4562elm_config_transition_duration_factor_set(double factor)
4362{ 4563{
4564 _elm_config->priv.transition_duration_factor = EINA_TRUE;
4363 if (factor < 0.0) return; 4565 if (factor < 0.0) return;
4364 if (_elm_config->transition_duration_factor == factor) return; 4566 if (_elm_config->transition_duration_factor == factor) return;
4365 _elm_config->transition_duration_factor = factor; 4567 _elm_config->transition_duration_factor = factor;
@@ -4375,7 +4577,7 @@ elm_config_transition_duration_factor_get(void)
4375EAPI void 4577EAPI void
4376elm_config_web_backend_set(const char *backend) 4578elm_config_web_backend_set(const char *backend)
4377{ 4579{
4378 _elm_config->priv.web_backend = EINA_TRUE; 4580 _elm_config->priv.web_backend = EINA_TRUE;
4379 if (_elm_web_init(backend)) 4581 if (_elm_web_init(backend))
4380 _elm_config->web_backend = backend; 4582 _elm_config->web_backend = backend;
4381} 4583}
diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
index 7d2d02aa40..c07617b1f0 100644
--- a/src/lib/elementary/elm_priv.h
+++ b/src/lib/elementary/elm_priv.h
@@ -219,12 +219,108 @@ struct _Elm_Config_Flags
219 Eina_Bool scroll_smooth_amount : 1; 219 Eina_Bool scroll_smooth_amount : 1;
220 Eina_Bool scroll_smooth_time_window : 1; 220 Eina_Bool scroll_smooth_time_window : 1;
221 Eina_Bool scale : 1; 221 Eina_Bool scale : 1;
222 // ... 222 Eina_Bool bgpixmap : 1; // unused
223 Eina_Bool compositing : 1; // unused
224 Eina_Bool font_dirs : 1; // unused
225 Eina_Bool font_overlays : 1;
226 Eina_Bool font_hinting : 1;
227 Eina_Bool cache_flush_poll_interval : 1;
228 Eina_Bool cache_flush_enable : 1;
229 Eina_Bool image_cache : 1;
230 Eina_Bool font_cache : 1;
231 Eina_Bool edje_cache : 1;
232 Eina_Bool edje_collection_cache : 1;
233 Eina_Bool finger_size : 1;
234 Eina_Bool fps : 1; // unused
235 Eina_Bool theme : 1; // unused
236 Eina_Bool modules : 1; // unused
237 Eina_Bool tooltip_delay : 1;
238 Eina_Bool cursor_engine_only : 1;
239 Eina_Bool focus_highlight_enable : 1;
240 Eina_Bool focus_highlight_animate : 1;
241 Eina_Bool focus_highlight_clip_disable : 1;
242 Eina_Bool focus_move_policy : 1;
243 Eina_Bool item_select_on_focus_disable : 1;
244 Eina_Bool first_item_focus_on_first_focus_in : 1;
245 Eina_Bool focus_autoscroll_mode : 1;
246 Eina_Bool slider_indicator_visible_mode : 1;
247 Eina_Bool popup_horizontal_align : 1; // unused
248 Eina_Bool popup_vertical_align : 1; // unused
249 Eina_Bool popup_scrollable : 1;
250 Eina_Bool toolbar_shrink_mode : 1; // unused
251 Eina_Bool fileselector_expand_enable : 1; // unused
252 Eina_Bool fileselector_double_tap_navigation_enable : 1; // unused
253 Eina_Bool inwin_dialogs_enable : 1; // unused
254 Eina_Bool icon_size : 1; // unused
255 Eina_Bool longpress_timeout : 1;
256 Eina_Bool effect_enable : 1; // unused
257 Eina_Bool desktop_entry : 1; // unused
258 Eina_Bool context_menu_disabled : 1;
259 Eina_Bool password_show_last : 1;
260 Eina_Bool password_show_last_timeout : 1;
261 Eina_Bool glayer_zoom_finger_enable : 1; // unused
262 Eina_Bool glayer_zoom_finger_factor : 1; // unused
263 Eina_Bool glayer_zoom_wheel_factor : 1; // unused
264 Eina_Bool glayer_zoom_distance_tolerance : 1; // unused
265 Eina_Bool glayer_rotate_finger_enable : 1; // unused
266 Eina_Bool glayer_rotate_angular_tolerance : 1; // unused
267 Eina_Bool glayer_line_min_length : 1; // unused
268 Eina_Bool glayer_line_distance_tolerance : 1; // unused
269 Eina_Bool glayer_line_angular_tolerance : 1; // unused
270 Eina_Bool glayer_flick_time_limit_ms : 1; // unused
271 Eina_Bool glayer_long_tap_start_timeout : 1;
272 Eina_Bool glayer_double_tap_timeout : 1;
273 Eina_Bool access_mode : 1;
274 Eina_Bool glayer_continues_enable : 1; // unused
275 Eina_Bool week_start : 1; // unused
276 Eina_Bool weekend_start : 1; // unused
277 Eina_Bool weekend_len : 1; // unused
278 Eina_Bool year_min : 1; // unused
279 Eina_Bool year_max : 1; // unused
280 Eina_Bool color_overlays : 1;
281 Eina_Bool color_palette : 1; // unused
282 Eina_Bool softcursor_mode : 1;
283 Eina_Bool auto_norender_withdrawn : 1; // unused
284 Eina_Bool auto_norender_iconified_same_as_withdrawn : 1; // unused
285 Eina_Bool auto_flush_withdrawn : 1; // unused
286 Eina_Bool auto_dump_withdrawn : 1; // unused
287 Eina_Bool auto_throttle : 1; // unused
288 Eina_Bool auto_throttle_amount : 1; // unused
289 Eina_Bool indicator_service_0 : 1; // unused
290 Eina_Bool indicator_service_90 : 1; // unused
291 Eina_Bool indicator_service_180 : 1; // unused
292 Eina_Bool indicator_service_270 : 1; // unused
293 Eina_Bool selection_clear_enable : 1;
294 Eina_Bool disable_external_menu : 1;
295 Eina_Bool clouseau_enable : 1;
296 Eina_Bool magnifier_enable : 1;
297 Eina_Bool magnifier_scale : 1;
298 Eina_Bool audio_mute_effect : 1;
299 Eina_Bool audio_mute_background : 1;
300 Eina_Bool audio_mute_music : 1;
301 Eina_Bool audio_mute_foreground : 1;
302 Eina_Bool audio_mute_interface : 1;
303 Eina_Bool audio_mute_input : 1;
304 Eina_Bool audio_mute_alert : 1;
305 Eina_Bool audio_mute_all : 1;
306 Eina_Bool win_auto_focus_enable : 1;
307 Eina_Bool win_auto_focus_animate : 1;
308 Eina_Bool transition_duration_factor : 1;
309 Eina_Bool naviframe_prev_btn_auto_pushed : 1; // unused
310 Eina_Bool spinner_min_max_filter_enable : 1; // unused
311 Eina_Bool bindings : 1; // unused
312 Eina_Bool atspi_mode : 1;
313 Eina_Bool gl_depth : 1;
314 Eina_Bool gl_stencil : 1;
315 Eina_Bool gl_msaa : 1;
316 Eina_Bool icon_theme : 1;
317 Eina_Bool entry_select_allow : 1; // unused
223}; 318};
224 319
225struct _Elm_Config 320struct _Elm_Config
226{ 321{
227 int config_version; 322 int config_version;
323
228 const char *engine; 324 const char *engine;
229 const char *accel; 325 const char *accel;
230 const char *web_backend; 326 const char *web_backend;