per-desk profiles - move to per screen and use elm derived profiles
this removes the per desktop profile config and replaces it with a per-screen one that is tied to a specific display so it is far more logical than per desktop. this allows e to set up different scaling per screen for apps that use elementary for example via this derived profile. this of course is slightly problematic for e itself since it now uses elm - as this will cause e to go kind-of-crazy with differing profiles as it fights with itself and elm if 2 screens have different profiles. this requires elm to be fixed to allow custom profiles per window. this also currently won't switch profile of a window when you reconfigure screens. @feature xx
This commit is contained in:
parent
8215777848
commit
e1369a24bd
|
@ -13,5 +13,6 @@
|
||||||
/enlightenment_sys
|
/enlightenment_sys
|
||||||
/enlightenment_thumb
|
/enlightenment_thumb
|
||||||
/enlightenment_open
|
/enlightenment_open
|
||||||
|
/enlightenment_elm_cfgtool
|
||||||
|
|
||||||
/e_fm/enlightenment_fm
|
/e_fm/enlightenment_fm
|
||||||
|
|
|
@ -31,6 +31,7 @@ src/bin/enlightenment_backlight \
|
||||||
src/bin/enlightenment_fm_op \
|
src/bin/enlightenment_fm_op \
|
||||||
src/bin/enlightenment_sys \
|
src/bin/enlightenment_sys \
|
||||||
src/bin/enlightenment_thumb \
|
src/bin/enlightenment_thumb \
|
||||||
|
src/bin/enlightenment_elm_cfgtool \
|
||||||
src/bin/enlightenment_static_grabber
|
src/bin/enlightenment_static_grabber
|
||||||
|
|
||||||
if ! HAVE_WAYLAND_ONLY
|
if ! HAVE_WAYLAND_ONLY
|
||||||
|
@ -407,6 +408,12 @@ src/bin/e_user.c
|
||||||
src_bin_enlightenment_thumb_LDADD = @E_THUMB_LIBS@
|
src_bin_enlightenment_thumb_LDADD = @E_THUMB_LIBS@
|
||||||
src_bin_enlightenment_thumb_CPPFLAGS = $(E_CPPFLAGS)
|
src_bin_enlightenment_thumb_CPPFLAGS = $(E_CPPFLAGS)
|
||||||
|
|
||||||
|
src_bin_enlightenment_elm_cfgtool_SOURCES = \
|
||||||
|
src/bin/e_elm_cfgtool_main.c
|
||||||
|
|
||||||
|
src_bin_enlightenment_elm_cfgtool_LDADD = @e_libs@ -lm
|
||||||
|
src_bin_enlightenment_elm_cfgtool_CPPFLAGS = $(E_CPPFLAGS)
|
||||||
|
|
||||||
src_bin_enlightenment_fm_op_SOURCES = \
|
src_bin_enlightenment_fm_op_SOURCES = \
|
||||||
src/bin/e_fm_op.c
|
src/bin/e_fm_op.c
|
||||||
|
|
||||||
|
|
|
@ -2673,14 +2673,17 @@ e_client_desk_set(E_Client *ec, E_Desk *desk)
|
||||||
E_OBJECT_CHECK(desk);
|
E_OBJECT_CHECK(desk);
|
||||||
E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
|
E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
|
||||||
if (ec->desk == desk) return;
|
if (ec->desk == desk) return;
|
||||||
if ((e_config->use_desktop_window_profile) &&
|
if (ec->e.state.profile.use)
|
||||||
(ec->e.state.profile.use))
|
|
||||||
{
|
{
|
||||||
if (e_util_strcmp(ec->e.state.profile.name, desk->window_profile))
|
const char *profile = desk->window_profile;
|
||||||
|
|
||||||
|
// XXX: have default profile config
|
||||||
|
if (!profile) profile = "standard";
|
||||||
|
if (e_util_strcmp(ec->e.state.profile.name, profile))
|
||||||
{
|
{
|
||||||
if (e_client_desk_window_profile_available_check(ec, desk->window_profile))
|
if (e_client_desk_window_profile_available_check(ec, profile))
|
||||||
{
|
{
|
||||||
eina_stringshare_replace(&ec->e.state.profile.set, desk->window_profile);
|
eina_stringshare_replace(&ec->e.state.profile.set, profile);
|
||||||
eina_stringshare_replace(&ec->e.state.profile.wait, NULL);
|
eina_stringshare_replace(&ec->e.state.profile.wait, NULL);
|
||||||
ec->e.state.profile.wait_for_done = 0;
|
ec->e.state.profile.wait_for_done = 0;
|
||||||
e_client_desk_window_profile_wait_desk_set(ec, desk);
|
e_client_desk_window_profile_wait_desk_set(ec, desk);
|
||||||
|
|
|
@ -272,6 +272,7 @@ e_comp_canvas_init(int w, int h)
|
||||||
E_Zone *zone = e_zone_new(scr->screen, scr->escreen,
|
E_Zone *zone = e_zone_new(scr->screen, scr->escreen,
|
||||||
scr->x, scr->y, scr->w, scr->h);
|
scr->x, scr->y, scr->w, scr->h);
|
||||||
if (scr->id) zone->randr2_id = strdup(scr->id);
|
if (scr->id) zone->randr2_id = strdup(scr->id);
|
||||||
|
e_desk_window_profile_update(zone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -484,12 +485,14 @@ e_comp_canvas_update(void)
|
||||||
free(zone->randr2_id);
|
free(zone->randr2_id);
|
||||||
zone->randr2_id = NULL;
|
zone->randr2_id = NULL;
|
||||||
if (scr->id) zone->randr2_id = strdup(scr->id);
|
if (scr->id) zone->randr2_id = strdup(scr->id);
|
||||||
|
e_desk_window_profile_update(zone);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zone = e_zone_new(scr->screen, scr->escreen,
|
zone = e_zone_new(scr->screen, scr->escreen,
|
||||||
scr->x, scr->y, scr->w, scr->h);
|
scr->x, scr->y, scr->w, scr->h);
|
||||||
if (scr->id) zone->randr2_id = strdup(scr->id);
|
if (scr->id) zone->randr2_id = strdup(scr->id);
|
||||||
|
e_desk_window_profile_update(zone);
|
||||||
printf("@@@ NEW ZONE = %p\n", zone);
|
printf("@@@ NEW ZONE = %p\n", zone);
|
||||||
changed = EINA_TRUE;
|
changed = EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4304,7 +4304,7 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client *ec)
|
||||||
cd->fetch_exe = 0;
|
cd->fetch_exe = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((e_config->use_desktop_window_profile) && (need_desk_set))
|
if (need_desk_set)
|
||||||
{
|
{
|
||||||
E_Desk *desk = NULL;
|
E_Desk *desk = NULL;
|
||||||
const char *p, *p2;
|
const char *p, *p2;
|
||||||
|
@ -5199,7 +5199,7 @@ _e_comp_x_setup(Ecore_X_Window root, int w, int h)
|
||||||
|
|
||||||
E_OBJECT_DEL_SET(e_comp, _e_comp_x_del);
|
E_OBJECT_DEL_SET(e_comp, _e_comp_x_del);
|
||||||
e_comp_x = e_comp->x_comp_data = E_NEW(E_Comp_X_Data, 1);
|
e_comp_x = e_comp->x_comp_data = E_NEW(E_Comp_X_Data, 1);
|
||||||
ecore_x_e_window_profile_supported_set(root, e_config->use_desktop_window_profile);
|
ecore_x_e_window_profile_supported_set(root, EINA_TRUE);
|
||||||
e_comp->cm_selection = ecore_x_window_input_new(root, 0, 0, 1, 1);
|
e_comp->cm_selection = ecore_x_window_input_new(root, 0, 0, 1, 1);
|
||||||
if (!e_comp->cm_selection) return EINA_FALSE;
|
if (!e_comp->cm_selection) return EINA_FALSE;
|
||||||
ecore_x_icccm_name_class_set(e_comp->cm_selection, "comp", "cm_selection");
|
ecore_x_icccm_name_class_set(e_comp->cm_selection, "comp", "cm_selection");
|
||||||
|
|
|
@ -824,6 +824,14 @@ e_comp_x_randr_create(void)
|
||||||
s->info.can_rot_180 = EINA_TRUE;
|
s->info.can_rot_180 = EINA_TRUE;
|
||||||
if (info->rotations & ECORE_X_RANDR_ORIENTATION_ROT_270)
|
if (info->rotations & ECORE_X_RANDR_ORIENTATION_ROT_270)
|
||||||
s->info.can_rot_270 = EINA_TRUE;
|
s->info.can_rot_270 = EINA_TRUE;
|
||||||
|
if (cs)
|
||||||
|
{
|
||||||
|
if (cs->profile)
|
||||||
|
s->config.profile = strdup(cs->profile);
|
||||||
|
else
|
||||||
|
s->config.profile = NULL;
|
||||||
|
s->config.scale_multiplier = cs->scale_multiplier;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ecore_x_randr_crtc_info_free(info);
|
ecore_x_randr_crtc_info_free(info);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,6 @@ static E_Config_DD *_e_config_path_append_edd = NULL;
|
||||||
static E_Config_DD *_e_config_desktop_bg_edd = NULL;
|
static E_Config_DD *_e_config_desktop_bg_edd = NULL;
|
||||||
static E_Config_DD *_e_config_desklock_bg_edd = NULL;
|
static E_Config_DD *_e_config_desklock_bg_edd = NULL;
|
||||||
static E_Config_DD *_e_config_desktop_name_edd = NULL;
|
static E_Config_DD *_e_config_desktop_name_edd = NULL;
|
||||||
static E_Config_DD *_e_config_desktop_window_profile_edd = NULL;
|
|
||||||
static E_Config_DD *_e_config_menu_applications_edd = NULL;
|
static E_Config_DD *_e_config_menu_applications_edd = NULL;
|
||||||
static E_Config_DD *_e_config_color_class_edd = NULL;
|
static E_Config_DD *_e_config_color_class_edd = NULL;
|
||||||
static E_Config_DD *_e_config_gadcon_edd = NULL;
|
static E_Config_DD *_e_config_gadcon_edd = NULL;
|
||||||
|
@ -135,7 +134,6 @@ _e_config_edd_shutdown(void)
|
||||||
E_CONFIG_DD_FREE(_e_config_desktop_bg_edd);
|
E_CONFIG_DD_FREE(_e_config_desktop_bg_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_desklock_bg_edd);
|
E_CONFIG_DD_FREE(_e_config_desklock_bg_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_desktop_name_edd);
|
E_CONFIG_DD_FREE(_e_config_desktop_name_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_desktop_window_profile_edd);
|
|
||||||
E_CONFIG_DD_FREE(e_remember_edd);
|
E_CONFIG_DD_FREE(e_remember_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_menu_applications_edd);
|
E_CONFIG_DD_FREE(_e_config_menu_applications_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_gadcon_edd);
|
E_CONFIG_DD_FREE(_e_config_gadcon_edd);
|
||||||
|
@ -147,6 +145,7 @@ _e_config_edd_shutdown(void)
|
||||||
E_CONFIG_DD_FREE(_e_config_env_var_edd);
|
E_CONFIG_DD_FREE(_e_config_env_var_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_xkb_layout_edd);
|
E_CONFIG_DD_FREE(_e_config_xkb_layout_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_xkb_option_edd);
|
E_CONFIG_DD_FREE(_e_config_xkb_option_edd);
|
||||||
|
E_CONFIG_DD_FREE(_e_config_xkb_option_edd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -243,16 +242,6 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
E_CONFIG_VAL(D, T, desk_y, INT);
|
E_CONFIG_VAL(D, T, desk_y, INT);
|
||||||
E_CONFIG_VAL(D, T, name, STR);
|
E_CONFIG_VAL(D, T, name, STR);
|
||||||
|
|
||||||
_e_config_desktop_window_profile_edd = E_CONFIG_DD_NEW("E_Config_Desktop_Window_Profile", E_Config_Desktop_Window_Profile);
|
|
||||||
#undef T
|
|
||||||
#undef D
|
|
||||||
#define T E_Config_Desktop_Window_Profile
|
|
||||||
#define D _e_config_desktop_window_profile_edd
|
|
||||||
E_CONFIG_VAL(D, T, zone, INT);
|
|
||||||
E_CONFIG_VAL(D, T, desk_x, INT);
|
|
||||||
E_CONFIG_VAL(D, T, desk_y, INT);
|
|
||||||
E_CONFIG_VAL(D, T, profile, STR);
|
|
||||||
|
|
||||||
_e_config_path_append_edd = E_CONFIG_DD_NEW("E_Path_Dir", E_Path_Dir);
|
_e_config_path_append_edd = E_CONFIG_DD_NEW("E_Path_Dir", E_Path_Dir);
|
||||||
#undef T
|
#undef T
|
||||||
#undef D
|
#undef D
|
||||||
|
@ -434,6 +423,14 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
#define D _e_config_xkb_option_edd
|
#define D _e_config_xkb_option_edd
|
||||||
E_CONFIG_VAL(D, T, name, STR);
|
E_CONFIG_VAL(D, T, name, STR);
|
||||||
|
|
||||||
|
_e_config_xkb_option_edd = E_CONFIG_DD_NEW("E_Config_XKB_Option",
|
||||||
|
E_Config_XKB_Option);
|
||||||
|
#undef T
|
||||||
|
#undef D
|
||||||
|
#define T E_Config_XKB_Option
|
||||||
|
#define D _e_config_xkb_option_edd
|
||||||
|
E_CONFIG_VAL(D, T, name, STR);
|
||||||
|
|
||||||
_e_config_edd = E_CONFIG_DD_NEW("E_Config", E_Config);
|
_e_config_edd = E_CONFIG_DD_NEW("E_Config", E_Config);
|
||||||
#undef T
|
#undef T
|
||||||
#undef D
|
#undef D
|
||||||
|
@ -445,10 +442,8 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
E_CONFIG_VAL(D, T, show_splash, INT); /**/
|
E_CONFIG_VAL(D, T, show_splash, INT); /**/
|
||||||
E_CONFIG_VAL(D, T, desktop_default_background, STR); /**/
|
E_CONFIG_VAL(D, T, desktop_default_background, STR); /**/
|
||||||
E_CONFIG_VAL(D, T, desktop_default_name, STR); /**/
|
E_CONFIG_VAL(D, T, desktop_default_name, STR); /**/
|
||||||
E_CONFIG_VAL(D, T, desktop_default_window_profile, STR); /**/
|
|
||||||
E_CONFIG_LIST(D, T, desktop_backgrounds, _e_config_desktop_bg_edd); /**/
|
E_CONFIG_LIST(D, T, desktop_backgrounds, _e_config_desktop_bg_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, desktop_names, _e_config_desktop_name_edd); /**/
|
E_CONFIG_LIST(D, T, desktop_names, _e_config_desktop_name_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, desktop_window_profiles, _e_config_desktop_window_profile_edd);
|
|
||||||
E_CONFIG_VAL(D, T, menus_scroll_speed, DOUBLE); /**/
|
E_CONFIG_VAL(D, T, menus_scroll_speed, DOUBLE); /**/
|
||||||
E_CONFIG_VAL(D, T, menus_fast_mouse_move_threshhold, DOUBLE); /**/
|
E_CONFIG_VAL(D, T, menus_fast_mouse_move_threshhold, DOUBLE); /**/
|
||||||
E_CONFIG_VAL(D, T, menus_click_drag_timeout, DOUBLE); /**/
|
E_CONFIG_VAL(D, T, menus_click_drag_timeout, DOUBLE); /**/
|
||||||
|
@ -775,8 +770,6 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
//E_CONFIG_VAL(D, T, xkb.cur_group, INT);
|
//E_CONFIG_VAL(D, T, xkb.cur_group, INT);
|
||||||
|
|
||||||
E_CONFIG_VAL(D, T, exe_always_single_instance, UCHAR);
|
E_CONFIG_VAL(D, T, exe_always_single_instance, UCHAR);
|
||||||
|
|
||||||
E_CONFIG_VAL(D, T, use_desktop_window_profile, INT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* externally accessible functions */
|
/* externally accessible functions */
|
||||||
|
@ -2182,17 +2175,10 @@ _e_config_free(E_Config *ecf)
|
||||||
E_Remember *rem;
|
E_Remember *rem;
|
||||||
E_Config_Env_Var *evr;
|
E_Config_Env_Var *evr;
|
||||||
E_Config_XKB_Option *op;
|
E_Config_XKB_Option *op;
|
||||||
E_Config_Desktop_Window_Profile *wp;
|
|
||||||
E_Int_Menu_Applications *ema;
|
E_Int_Menu_Applications *ema;
|
||||||
|
|
||||||
if (!ecf) return;
|
if (!ecf) return;
|
||||||
|
|
||||||
EINA_LIST_FREE(ecf->desktop_window_profiles, wp)
|
|
||||||
{
|
|
||||||
eina_stringshare_del(wp->profile);
|
|
||||||
E_FREE(wp);
|
|
||||||
}
|
|
||||||
|
|
||||||
eina_stringshare_del(ecf->xkb.default_model);
|
eina_stringshare_del(ecf->xkb.default_model);
|
||||||
|
|
||||||
E_FREE_LIST(ecf->xkb.used_layouts, e_config_xkb_layout_free);
|
E_FREE_LIST(ecf->xkb.used_layouts, e_config_xkb_layout_free);
|
||||||
|
@ -2282,7 +2268,6 @@ _e_config_free(E_Config *ecf)
|
||||||
}
|
}
|
||||||
if (ecf->desktop_default_background) eina_stringshare_del(ecf->desktop_default_background);
|
if (ecf->desktop_default_background) eina_stringshare_del(ecf->desktop_default_background);
|
||||||
if (ecf->desktop_default_name) eina_stringshare_del(ecf->desktop_default_name);
|
if (ecf->desktop_default_name) eina_stringshare_del(ecf->desktop_default_name);
|
||||||
if (ecf->desktop_default_window_profile) eina_stringshare_del(ecf->desktop_default_window_profile);
|
|
||||||
if (ecf->language) eina_stringshare_del(ecf->language);
|
if (ecf->language) eina_stringshare_del(ecf->language);
|
||||||
eina_stringshare_del(ecf->desklock_language);
|
eina_stringshare_del(ecf->desklock_language);
|
||||||
eina_stringshare_del(ecf->xkb.selected_layout);
|
eina_stringshare_del(ecf->xkb.selected_layout);
|
||||||
|
|
|
@ -13,7 +13,6 @@ typedef struct _E_Config_Binding_Acpi E_Config_Binding_Acpi;
|
||||||
typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background;
|
typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background;
|
||||||
typedef struct _E_Config_Desklock_Background E_Config_Desklock_Background;
|
typedef struct _E_Config_Desklock_Background E_Config_Desklock_Background;
|
||||||
typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name;
|
typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name;
|
||||||
typedef struct _E_Config_Desktop_Window_Profile E_Config_Desktop_Window_Profile;
|
|
||||||
typedef struct _E_Config_Gadcon E_Config_Gadcon;
|
typedef struct _E_Config_Gadcon E_Config_Gadcon;
|
||||||
typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client;
|
typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client;
|
||||||
typedef struct _E_Config_Shelf E_Config_Shelf;
|
typedef struct _E_Config_Shelf E_Config_Shelf;
|
||||||
|
@ -60,9 +59,7 @@ struct _E_Config
|
||||||
const char *desktop_default_background; // GUI
|
const char *desktop_default_background; // GUI
|
||||||
Eina_List *desktop_backgrounds; // GUI
|
Eina_List *desktop_backgrounds; // GUI
|
||||||
const char *desktop_default_name;
|
const char *desktop_default_name;
|
||||||
const char *desktop_default_window_profile;
|
|
||||||
Eina_List *desktop_names; // GUI
|
Eina_List *desktop_names; // GUI
|
||||||
Eina_List *desktop_window_profiles; // GUI
|
|
||||||
double menus_scroll_speed; // GUI
|
double menus_scroll_speed; // GUI
|
||||||
double menus_fast_mouse_move_threshhold; // GUI
|
double menus_fast_mouse_move_threshhold; // GUI
|
||||||
double menus_click_drag_timeout; // GUI
|
double menus_click_drag_timeout; // GUI
|
||||||
|
@ -439,7 +436,7 @@ struct _E_Config
|
||||||
|
|
||||||
Eina_List *menu_applications;
|
Eina_List *menu_applications;
|
||||||
unsigned char exe_always_single_instance; // GUI
|
unsigned char exe_always_single_instance; // GUI
|
||||||
int use_desktop_window_profile; // GUI
|
Eina_List *screen_profiles;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct E_Config_Bindings
|
struct E_Config_Bindings
|
||||||
|
@ -559,14 +556,6 @@ struct _E_Config_Desktop_Name
|
||||||
const char *name;
|
const char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Config_Desktop_Window_Profile
|
|
||||||
{
|
|
||||||
int zone;
|
|
||||||
int desk_x;
|
|
||||||
int desk_y;
|
|
||||||
const char *profile;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Config_Gadcon
|
struct _E_Config_Gadcon
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
153
src/bin/e_desk.c
153
src/bin/e_desk.c
|
@ -44,13 +44,52 @@ e_desk_shutdown(void)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_do_profile(E_Desk *desk, E_Randr2_Screen *sc)
|
||||||
|
{
|
||||||
|
int scale = 100;
|
||||||
|
char buf[PATH_MAX], buf2[PATH_MAX];
|
||||||
|
|
||||||
|
eina_stringshare_del(desk->window_profile);
|
||||||
|
desk->window_profile = NULL;
|
||||||
|
|
||||||
|
if (sc->config.scale_multiplier > 0.0)
|
||||||
|
{
|
||||||
|
scale = (int)(sc->config.scale_multiplier * 100.0);
|
||||||
|
}
|
||||||
|
else if (e_config->scale.use_dpi)
|
||||||
|
{
|
||||||
|
double dpi = e_randr2_screen_dpi_get(sc);
|
||||||
|
|
||||||
|
if ((dpi > 0.0) && (e_config->scale.base_dpi > 0))
|
||||||
|
scale = (int)((100.0 * dpi) / (double)e_config->scale.base_dpi);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scale == 100)
|
||||||
|
snprintf(buf, sizeof(buf), "%s", sc->config.profile);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(buf, sizeof(buf), ".scale-%04i-%s",
|
||||||
|
scale, sc->config.profile);
|
||||||
|
if (!elm_config_profile_exists(buf))
|
||||||
|
{
|
||||||
|
snprintf(buf2, sizeof(buf2),
|
||||||
|
"%s/enlightenment/utils/enlightenment_elm_cfgtool "
|
||||||
|
"set %s %s 'scale-mul %i'",
|
||||||
|
e_prefix_lib_get(), sc->config.profile, buf, scale);
|
||||||
|
system(buf2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
desk->window_profile = eina_stringshare_add(buf);
|
||||||
|
}
|
||||||
|
|
||||||
E_API E_Desk *
|
E_API E_Desk *
|
||||||
e_desk_new(E_Zone *zone, int x, int y)
|
e_desk_new(E_Zone *zone, int x, int y)
|
||||||
{
|
{
|
||||||
E_Desk *desk;
|
E_Desk *desk;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
E_Config_Desktop_Name *cfname;
|
E_Config_Desktop_Name *cfname;
|
||||||
E_Config_Desktop_Window_Profile *cfprof;
|
|
||||||
char name[40];
|
char name[40];
|
||||||
int ok = 0;
|
int ok = 0;
|
||||||
|
|
||||||
|
@ -60,6 +99,8 @@ e_desk_new(E_Zone *zone, int x, int y)
|
||||||
desk = E_OBJECT_ALLOC(E_Desk, E_DESK_TYPE, _e_desk_free);
|
desk = E_OBJECT_ALLOC(E_Desk, E_DESK_TYPE, _e_desk_free);
|
||||||
if (!desk) return NULL;
|
if (!desk) return NULL;
|
||||||
|
|
||||||
|
_e_desk_window_profile_change_protocol_set();
|
||||||
|
|
||||||
desk->zone = zone;
|
desk->zone = zone;
|
||||||
desk->x = x;
|
desk->x = x;
|
||||||
desk->y = y;
|
desk->y = y;
|
||||||
|
@ -81,21 +122,15 @@ e_desk_new(E_Zone *zone, int x, int y)
|
||||||
snprintf(name, sizeof(name), _(e_config->desktop_default_name), x, y);
|
snprintf(name, sizeof(name), _(e_config->desktop_default_name), x, y);
|
||||||
desk->name = eina_stringshare_add(name);
|
desk->name = eina_stringshare_add(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get window profile name for current desktop */
|
/* Get window profile name for current desktop */
|
||||||
ok = 0;
|
if (zone->randr2_id)
|
||||||
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
|
||||||
{
|
{
|
||||||
if ((cfprof->zone >= 0) &&
|
E_Randr2_Screen *sc = e_randr2_screen_id_find(zone->randr2_id);
|
||||||
((int)zone->num != cfprof->zone)) continue;
|
|
||||||
if ((cfprof->desk_x != desk->x) || (cfprof->desk_y != desk->y))
|
if ((sc) && (sc->config.profile)) _do_profile(desk, sc);
|
||||||
continue;
|
|
||||||
desk->window_profile = eina_stringshare_ref(cfprof->profile);
|
|
||||||
ok = 1;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ok)
|
|
||||||
desk->window_profile = eina_stringshare_ref(e_config->desktop_default_window_profile);
|
|
||||||
return desk;
|
return desk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -550,85 +585,20 @@ e_desk_window_profile_set(E_Desk *desk,
|
||||||
}
|
}
|
||||||
|
|
||||||
E_API void
|
E_API void
|
||||||
e_desk_window_profile_add(int zone,
|
e_desk_window_profile_update(E_Zone *zone)
|
||||||
int desk_x,
|
|
||||||
int desk_y,
|
|
||||||
const char *profile)
|
|
||||||
{
|
{
|
||||||
E_Config_Desktop_Window_Profile *cfprof;
|
if (zone->randr2_id)
|
||||||
|
|
||||||
e_desk_window_profile_del(zone, desk_x, desk_y);
|
|
||||||
|
|
||||||
cfprof = E_NEW(E_Config_Desktop_Window_Profile, 1);
|
|
||||||
cfprof->zone = zone;
|
|
||||||
cfprof->desk_x = desk_x;
|
|
||||||
cfprof->desk_y = desk_y;
|
|
||||||
cfprof->profile = eina_stringshare_add(profile);
|
|
||||||
e_config->desktop_window_profiles = eina_list_append(e_config->desktop_window_profiles, cfprof);
|
|
||||||
}
|
|
||||||
|
|
||||||
E_API void
|
|
||||||
e_desk_window_profile_del(int zone,
|
|
||||||
int desk_x,
|
|
||||||
int desk_y)
|
|
||||||
{
|
|
||||||
Eina_List *l = NULL;
|
|
||||||
E_Config_Desktop_Window_Profile *cfprof = NULL;
|
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
|
||||||
{
|
{
|
||||||
if (!((cfprof->zone == zone) &&
|
E_Randr2_Screen *sc = e_randr2_screen_id_find(zone->randr2_id);
|
||||||
(cfprof->desk_x == desk_x) &&
|
|
||||||
(cfprof->desk_y == desk_y)))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
e_config->desktop_window_profiles =
|
if ((sc) && (sc->config.profile))
|
||||||
eina_list_remove_list(e_config->desktop_window_profiles, l);
|
|
||||||
eina_stringshare_del(cfprof->profile);
|
|
||||||
free(cfprof);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
E_API void
|
|
||||||
e_desk_window_profile_update(void)
|
|
||||||
{
|
|
||||||
const Eina_List *z, *l;
|
|
||||||
E_Zone *zone;
|
|
||||||
E_Desk *desk;
|
|
||||||
E_Config_Desktop_Window_Profile *cfprof;
|
|
||||||
int d_x, d_y, ok;
|
|
||||||
|
|
||||||
_e_desk_window_profile_change_protocol_set();
|
|
||||||
|
|
||||||
if (!(e_config->use_desktop_window_profile))
|
|
||||||
return;
|
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_comp->zones, z, zone)
|
|
||||||
{
|
|
||||||
for (d_x = 0; d_x < zone->desk_x_count; d_x++)
|
|
||||||
{
|
{
|
||||||
for (d_y = 0; d_y < zone->desk_y_count; d_y++)
|
int x, y;
|
||||||
|
|
||||||
|
for (y = 0; y < zone->desk_y_count; y++)
|
||||||
{
|
{
|
||||||
desk = zone->desks[d_x + zone->desk_x_count * d_y];
|
for (x = 0; x < zone->desk_x_count; x++)
|
||||||
ok = 0;
|
_do_profile(zone->desks[x + (y * zone->desk_x_count)], sc);
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
|
||||||
{
|
|
||||||
if ((cfprof->zone >= 0) &&
|
|
||||||
((int)zone->num != cfprof->zone)) continue;
|
|
||||||
if ((cfprof->desk_x != d_x) ||
|
|
||||||
(cfprof->desk_y != d_y)) continue;
|
|
||||||
e_desk_window_profile_set(desk, cfprof->profile);
|
|
||||||
ok = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ok)
|
|
||||||
{
|
|
||||||
e_desk_window_profile_set
|
|
||||||
(desk, e_config->desktop_default_window_profile);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -890,6 +860,15 @@ static void
|
||||||
_e_desk_window_profile_change_protocol_set(void)
|
_e_desk_window_profile_change_protocol_set(void)
|
||||||
{
|
{
|
||||||
#ifndef HAVE_WAYLAND_ONLY
|
#ifndef HAVE_WAYLAND_ONLY
|
||||||
ecore_x_e_window_profile_supported_set(e_comp->root, e_config->use_desktop_window_profile);
|
static Eina_Bool is_set = EINA_FALSE;
|
||||||
|
|
||||||
|
if (!is_set)
|
||||||
|
{
|
||||||
|
if (e_comp->root)
|
||||||
|
{
|
||||||
|
is_set = EINA_TRUE;
|
||||||
|
ecore_x_e_window_profile_supported_set(e_comp->root, EINA_TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,9 +86,7 @@ E_API void e_desk_row_remove(E_Zone *zone);
|
||||||
E_API void e_desk_col_add(E_Zone *zone);
|
E_API void e_desk_col_add(E_Zone *zone);
|
||||||
E_API void e_desk_col_remove(E_Zone *zone);
|
E_API void e_desk_col_remove(E_Zone *zone);
|
||||||
E_API void e_desk_window_profile_set(E_Desk *desk, const char *profile);
|
E_API void e_desk_window_profile_set(E_Desk *desk, const char *profile);
|
||||||
E_API void e_desk_window_profile_add(int zone, int desk_x, int desk_y, const char *profile);
|
E_API void e_desk_window_profile_update(E_Zone *zone);
|
||||||
E_API void e_desk_window_profile_del(int zone, int desk_x, int desk_y);
|
|
||||||
E_API void e_desk_window_profile_update(void);
|
|
||||||
|
|
||||||
E_API void e_desk_flip_cb_set(E_Desk_Flip_Cb cb, const void *data);
|
E_API void e_desk_flip_cb_set(E_Desk_Flip_Cb cb, const void *data);
|
||||||
E_API void e_desk_flip_end(E_Desk *desk);
|
E_API void e_desk_flip_end(E_Desk *desk);
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
#include "config.h"
|
||||||
|
#include <Elementary.h>
|
||||||
|
|
||||||
|
EAPI_MAIN int
|
||||||
|
elm_main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
const char *src_profile;
|
||||||
|
const char *derive_profile;
|
||||||
|
const char *derive_options;
|
||||||
|
|
||||||
|
if (argc < 4)
|
||||||
|
{
|
||||||
|
printf("This is an internal tool for enlightenment\n"
|
||||||
|
" enlightenment_elm_cfgtool set SRCPROFILE DERIVEDPROFILE DERIVEOPTIONS\n"
|
||||||
|
" enlightenment_elm_cfgtool del SRCPROFILE DERIVEDPROFILE\n"
|
||||||
|
"\n"
|
||||||
|
"e.g.\n"
|
||||||
|
" enlightenment_elm_cfgtool set standard .scale-0150-standard 'scale-mul 150'\n"
|
||||||
|
"\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (!strcmp(argv[1], "set"))
|
||||||
|
{
|
||||||
|
src_profile = argv[2];
|
||||||
|
derive_profile = argv[3];
|
||||||
|
derive_options = argv[4];
|
||||||
|
elm_config_profile_set(src_profile);
|
||||||
|
elm_config_profile_derived_del(derive_profile);
|
||||||
|
elm_config_profile_derived_add(derive_profile, derive_options);
|
||||||
|
}
|
||||||
|
else if (!strcmp(argv[1], "del"))
|
||||||
|
{
|
||||||
|
src_profile = argv[2];
|
||||||
|
derive_profile = argv[3];
|
||||||
|
elm_config_profile_set(src_profile);
|
||||||
|
elm_config_profile_derived_del(derive_profile);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Unknown command '%s'\n", argv[1]);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
ELM_MAIN()
|
|
@ -63,6 +63,8 @@ e_randr2_init(void)
|
||||||
E_CONFIG_VAL(D, T, priority, INT);
|
E_CONFIG_VAL(D, T, priority, INT);
|
||||||
E_CONFIG_VAL(D, T, rel_mode, UCHAR);
|
E_CONFIG_VAL(D, T, rel_mode, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, enabled, UCHAR);
|
E_CONFIG_VAL(D, T, enabled, UCHAR);
|
||||||
|
E_CONFIG_VAL(D, T, profile, STR);
|
||||||
|
E_CONFIG_VAL(D, T, scale_multiplier, DOUBLE);
|
||||||
|
|
||||||
_e_randr2_cfg_edd = E_CONFIG_DD_NEW("E_Config_Randr2", E_Config_Randr2);
|
_e_randr2_cfg_edd = E_CONFIG_DD_NEW("E_Config_Randr2", E_Config_Randr2);
|
||||||
#undef T
|
#undef T
|
||||||
|
@ -306,6 +308,7 @@ _info_free(E_Randr2 *r)
|
||||||
free(s->info.edid);
|
free(s->info.edid);
|
||||||
EINA_LIST_FREE(s->info.modes, m) free(m);
|
EINA_LIST_FREE(s->info.modes, m) free(m);
|
||||||
free(s->config.relative.to);
|
free(s->config.relative.to);
|
||||||
|
free(s->config.profile);
|
||||||
free(s);
|
free(s);
|
||||||
}
|
}
|
||||||
free(r);
|
free(r);
|
||||||
|
@ -350,7 +353,13 @@ _config_free(E_Config_Randr2 *cfg)
|
||||||
|
|
||||||
if (!cfg) return;
|
if (!cfg) return;
|
||||||
// free config data
|
// free config data
|
||||||
EINA_LIST_FREE(cfg->screens, cs) free(cs);
|
EINA_LIST_FREE(cfg->screens, cs)
|
||||||
|
{
|
||||||
|
eina_stringshare_del(cs->id);
|
||||||
|
eina_stringshare_del(cs->rel_to);
|
||||||
|
eina_stringshare_del(cs->profile);
|
||||||
|
free(cs);
|
||||||
|
}
|
||||||
free(cfg);
|
free(cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -387,7 +396,7 @@ _config_update(E_Randr2 *r, E_Config_Randr2 *cfg)
|
||||||
if (cs)
|
if (cs)
|
||||||
{
|
{
|
||||||
if (s->config.relative.to)
|
if (s->config.relative.to)
|
||||||
cs->rel_to = strdup(s->config.relative.to);
|
cs->rel_to = eina_stringshare_add(s->config.relative.to);
|
||||||
cs->rel_align = s->config.relative.align;
|
cs->rel_align = s->config.relative.align;
|
||||||
cs->mode_refresh = s->config.mode.refresh;
|
cs->mode_refresh = s->config.mode.refresh;
|
||||||
cs->mode_w = s->config.mode.w;
|
cs->mode_w = s->config.mode.w;
|
||||||
|
@ -396,6 +405,19 @@ _config_update(E_Randr2 *r, E_Config_Randr2 *cfg)
|
||||||
cs->priority = s->config.priority;
|
cs->priority = s->config.priority;
|
||||||
cs->rel_mode = s->config.relative.mode;
|
cs->rel_mode = s->config.relative.mode;
|
||||||
cs->enabled = s->config.enabled;
|
cs->enabled = s->config.enabled;
|
||||||
|
if (cs->profile)
|
||||||
|
{
|
||||||
|
printf("RRR: store config profile '%s'\n", cs->profile);
|
||||||
|
free(s->config.profile);
|
||||||
|
s->config.profile = strdup(cs->profile);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
free(s->config.profile);
|
||||||
|
s->config.profile = NULL;
|
||||||
|
}
|
||||||
|
printf("RRR: store scale mul %1.5f\n", cs->scale_multiplier);
|
||||||
|
s->config.scale_multiplier = cs->scale_multiplier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("--------------------------------------------------\n");
|
printf("--------------------------------------------------\n");
|
||||||
|
@ -418,6 +440,10 @@ _config_really_apply(E_Randr2_Screen *s, E_Config_Randr2_Screen *cs)
|
||||||
else s->config.relative.to = NULL;
|
else s->config.relative.to = NULL;
|
||||||
s->config.relative.mode = cs->rel_mode;
|
s->config.relative.mode = cs->rel_mode;
|
||||||
s->config.relative.align = cs->rel_align;
|
s->config.relative.align = cs->rel_align;
|
||||||
|
free(s->config.profile);
|
||||||
|
if (cs->profile) s->config.profile = strdup(cs->profile);
|
||||||
|
else s->config.profile = NULL;
|
||||||
|
s->config.scale_multiplier = cs->scale_multiplier;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -436,6 +462,9 @@ _config_really_apply(E_Randr2_Screen *s, E_Config_Randr2_Screen *cs)
|
||||||
s->config.relative.to = NULL;
|
s->config.relative.to = NULL;
|
||||||
s->config.relative.mode = E_RANDR2_RELATIVE_NONE;
|
s->config.relative.mode = E_RANDR2_RELATIVE_NONE;
|
||||||
s->config.relative.align = 0.0;
|
s->config.relative.align = 0.0;
|
||||||
|
free(s->config.profile);
|
||||||
|
s->config.profile = NULL;
|
||||||
|
s->config.scale_multiplier = 0.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -867,7 +896,7 @@ _screen_config_do(E_Randr2_Screen *s)
|
||||||
printf("RRR: screen do '%s'\n", s->info.name);
|
printf("RRR: screen do '%s'\n", s->info.name);
|
||||||
if (_config_do_recurse > 5)
|
if (_config_do_recurse > 5)
|
||||||
{
|
{
|
||||||
ERR("screen config loop!");
|
printf("RRR: screen config loop!\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_config_do_recurse++;
|
_config_do_recurse++;
|
||||||
|
|
|
@ -83,6 +83,9 @@ struct _E_Randr2_Screen
|
||||||
int priority; // larger num == more important
|
int priority; // larger num == more important
|
||||||
Eina_Bool enabled : 1; // should this monitor be enabled?
|
Eina_Bool enabled : 1; // should this monitor be enabled?
|
||||||
Eina_Bool configured : 1; // has screen been configured by e?
|
Eina_Bool configured : 1; // has screen been configured by e?
|
||||||
|
|
||||||
|
char *profile; // profile name to use on this screen
|
||||||
|
double scale_multiplier; // if 0.0 - then dont multiply scale
|
||||||
} config;
|
} config;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -97,16 +100,19 @@ struct _E_Config_Randr2
|
||||||
|
|
||||||
struct _E_Config_Randr2_Screen
|
struct _E_Config_Randr2_Screen
|
||||||
{
|
{
|
||||||
const char *id;
|
const char *id;
|
||||||
const char *rel_to;
|
const char *rel_to;
|
||||||
double rel_align;
|
double rel_align;
|
||||||
double mode_refresh;
|
double mode_refresh;
|
||||||
int mode_w;
|
int mode_w;
|
||||||
int mode_h;
|
int mode_h;
|
||||||
int rotation;
|
int rotation;
|
||||||
int priority;
|
int priority;
|
||||||
unsigned char rel_mode;
|
unsigned char rel_mode;
|
||||||
unsigned char enabled;
|
unsigned char enabled;
|
||||||
|
|
||||||
|
const char *profile;
|
||||||
|
double scale_multiplier;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern E_API E_Config_Randr2 *e_randr2_cfg;
|
extern E_API E_Config_Randr2 *e_randr2_cfg;
|
||||||
|
|
|
@ -14,7 +14,6 @@ struct _E_Config_Dialog_Data
|
||||||
int desk_y;
|
int desk_y;
|
||||||
Eina_Stringshare *bg;
|
Eina_Stringshare *bg;
|
||||||
char *name;
|
char *name;
|
||||||
char *profile;
|
|
||||||
Evas_Object *preview;
|
Evas_Object *preview;
|
||||||
Ecore_Event_Handler *hdl;
|
Ecore_Event_Handler *hdl;
|
||||||
};
|
};
|
||||||
|
@ -58,7 +57,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
char name[40];
|
char name[40];
|
||||||
int ok = 0;
|
int ok = 0;
|
||||||
E_Config_Desktop_Window_Profile *prof;
|
|
||||||
cfdata->bg = e_bg_file_get(cfdata->zone_num, cfdata->desk_x, cfdata->desk_y);
|
cfdata->bg = e_bg_file_get(cfdata->zone_num, cfdata->desk_x, cfdata->desk_y);
|
||||||
|
|
||||||
for (l = e_config->desktop_names; l; l = l->next)
|
for (l = e_config->desktop_names; l; l = l->next)
|
||||||
|
@ -81,22 +80,6 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
||||||
snprintf(name, sizeof(name), _(e_config->desktop_default_name), cfdata->desk_x, cfdata->desk_y);
|
snprintf(name, sizeof(name), _(e_config->desktop_default_name), cfdata->desk_x, cfdata->desk_y);
|
||||||
cfdata->name = strdup(name);
|
cfdata->name = strdup(name);
|
||||||
}
|
}
|
||||||
ok = 0;
|
|
||||||
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, prof)
|
|
||||||
{
|
|
||||||
if (!((prof->zone == cfdata->zone_num) &&
|
|
||||||
(prof->desk_x == cfdata->desk_x) &&
|
|
||||||
(prof->desk_y == cfdata->desk_y)))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (prof->profile)
|
|
||||||
cfdata->profile = strdup(prof->profile);
|
|
||||||
ok = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ok)
|
|
||||||
cfdata->profile = strdup(e_config->desktop_default_window_profile);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
|
@ -117,7 +100,6 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
||||||
ecore_event_handler_del(cfdata->hdl);
|
ecore_event_handler_del(cfdata->hdl);
|
||||||
eina_stringshare_del(cfdata->bg);
|
eina_stringshare_del(cfdata->bg);
|
||||||
E_FREE(cfdata->name);
|
E_FREE(cfdata->name);
|
||||||
E_FREE(cfdata->profile);
|
|
||||||
E_FREE(cfdata);
|
E_FREE(cfdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,19 +116,12 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
||||||
cfdata->name = strdup(name);
|
cfdata->name = strdup(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cfdata->profile[0])
|
|
||||||
cfdata->profile = strdup(e_config->desktop_default_window_profile);
|
|
||||||
e_desk_name_del(cfdata->zone_num,
|
e_desk_name_del(cfdata->zone_num,
|
||||||
cfdata->desk_x, cfdata->desk_y);
|
cfdata->desk_x, cfdata->desk_y);
|
||||||
e_desk_name_add(cfdata->zone_num,
|
e_desk_name_add(cfdata->zone_num,
|
||||||
cfdata->desk_x, cfdata->desk_y, cfdata->name);
|
cfdata->desk_x, cfdata->desk_y, cfdata->name);
|
||||||
e_desk_name_update();
|
e_desk_name_update();
|
||||||
|
|
||||||
e_desk_window_profile_del(cfdata->zone_num,
|
|
||||||
cfdata->desk_x, cfdata->desk_y);
|
|
||||||
e_desk_window_profile_add(cfdata->zone_num,
|
|
||||||
cfdata->desk_x, cfdata->desk_y, cfdata->profile);
|
|
||||||
e_desk_window_profile_update();
|
|
||||||
e_bg_del(cfdata->zone_num, cfdata->desk_x, cfdata->desk_y);
|
e_bg_del(cfdata->zone_num, cfdata->desk_x, cfdata->desk_y);
|
||||||
e_bg_add(cfdata->zone_num,
|
e_bg_add(cfdata->zone_num,
|
||||||
cfdata->desk_x, cfdata->desk_y, cfdata->bg);
|
cfdata->desk_x, cfdata->desk_y, cfdata->bg);
|
||||||
|
@ -172,13 +147,6 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
ob = e_widget_entry_add(cfd->dia->win, &(cfdata->name), NULL, NULL, NULL);
|
ob = e_widget_entry_add(cfd->dia->win, &(cfdata->name), NULL, NULL, NULL);
|
||||||
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
e_widget_list_object_append(o, ol, 1, 1, 0.5);
|
e_widget_list_object_append(o, ol, 1, 1, 0.5);
|
||||||
of = e_widget_frametable_add(evas, _("Desktop Window Profile"), 0);
|
|
||||||
ob = e_widget_label_add(evas, _("Profile name"));
|
|
||||||
e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 0, 0);
|
|
||||||
ob = e_widget_entry_add(cfd->dia->win, &(cfdata->profile), NULL, NULL, NULL);
|
|
||||||
e_widget_disabled_set(ob, !(e_config->use_desktop_window_profile));
|
|
||||||
e_widget_frametable_object_append(of, ob, 1, 0, 2, 1, 1, 1, 1, 0);
|
|
||||||
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
|
||||||
of = e_widget_frametable_add(evas, _("Wallpaper"), 0);
|
of = e_widget_frametable_add(evas, _("Wallpaper"), 0);
|
||||||
ob = e_widget_preview_add(evas, 240, (240 * zone->h) / zone->w);
|
ob = e_widget_preview_add(evas, 240, (240 * zone->h) / zone->w);
|
||||||
cfdata->preview = ob;
|
cfdata->preview = ob;
|
||||||
|
|
|
@ -16,7 +16,6 @@ struct _E_Config_Dialog_Data
|
||||||
int y;
|
int y;
|
||||||
int edge_flip_dragging;
|
int edge_flip_dragging;
|
||||||
int flip_wrap;
|
int flip_wrap;
|
||||||
int use_desktop_window_profile;
|
|
||||||
int flip_mode;
|
int flip_mode;
|
||||||
int flip_interp;
|
int flip_interp;
|
||||||
|
|
||||||
|
@ -63,7 +62,6 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
||||||
cfdata->y = e_config->zone_desks_y_count;
|
cfdata->y = e_config->zone_desks_y_count;
|
||||||
cfdata->edge_flip_dragging = e_config->edge_flip_dragging;
|
cfdata->edge_flip_dragging = e_config->edge_flip_dragging;
|
||||||
cfdata->flip_wrap = e_config->desk_flip_wrap;
|
cfdata->flip_wrap = e_config->desk_flip_wrap;
|
||||||
cfdata->use_desktop_window_profile = e_config->use_desktop_window_profile;
|
|
||||||
cfdata->flip_interp = e_config->desk_flip_animate_interpolation;
|
cfdata->flip_interp = e_config->desk_flip_animate_interpolation;
|
||||||
|
|
||||||
cfdata->flip_mode = 0;
|
cfdata->flip_mode = 0;
|
||||||
|
@ -132,11 +130,6 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata
|
||||||
e_config->edge_flip_dragging = cfdata->edge_flip_dragging;
|
e_config->edge_flip_dragging = cfdata->edge_flip_dragging;
|
||||||
e_config->desk_flip_wrap = cfdata->flip_wrap;
|
e_config->desk_flip_wrap = cfdata->flip_wrap;
|
||||||
|
|
||||||
if (e_config->use_desktop_window_profile != cfdata->use_desktop_window_profile)
|
|
||||||
{
|
|
||||||
e_config->use_desktop_window_profile = cfdata->use_desktop_window_profile;
|
|
||||||
e_desk_window_profile_update();
|
|
||||||
}
|
|
||||||
e_config_save_queue();
|
e_config_save_queue();
|
||||||
return 1; /* Apply was OK */
|
return 1; /* Apply was OK */
|
||||||
}
|
}
|
||||||
|
@ -159,9 +152,7 @@ _basic_check_changed(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfd
|
||||||
return ((e_util_strcasecmp(eina_list_nth(cfdata->comp_effects, cfdata->flip_mode), e_config->desk_flip_animate_type)) ||
|
return ((e_util_strcasecmp(eina_list_nth(cfdata->comp_effects, cfdata->flip_mode), e_config->desk_flip_animate_type)) ||
|
||||||
(e_config->desk_flip_animate_interpolation != cfdata->flip_interp) ||
|
(e_config->desk_flip_animate_interpolation != cfdata->flip_interp) ||
|
||||||
(e_config->edge_flip_dragging != cfdata->edge_flip_dragging) ||
|
(e_config->edge_flip_dragging != cfdata->edge_flip_dragging) ||
|
||||||
(e_config->desk_flip_wrap != cfdata->flip_wrap) ||
|
(e_config->desk_flip_wrap != cfdata->flip_wrap));
|
||||||
(e_config->use_desktop_window_profile != cfdata->use_desktop_window_profile)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**--GUI--**/
|
/**--GUI--**/
|
||||||
|
@ -209,14 +200,6 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dia
|
||||||
&(cfdata->flip_wrap));
|
&(cfdata->flip_wrap));
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
|
||||||
e_widget_list_object_append(o, of, 1, 0, 0.5);
|
|
||||||
of = e_widget_framelist_add(evas, _("Desktop Window Profile"), 0);
|
|
||||||
|
|
||||||
ob = e_widget_check_add(evas, _("Use desktop window profile"),
|
|
||||||
&(cfdata->use_desktop_window_profile));
|
|
||||||
e_widget_framelist_object_append(of, ob);
|
|
||||||
|
|
||||||
e_widget_list_object_append(o, of, 1, 0, 0.5);
|
|
||||||
e_widget_toolbook_page_append(otb, NULL, _("Desktops"), o, 1, 1, 1, 1,
|
e_widget_toolbook_page_append(otb, NULL, _("Desktops"), o, 1, 1, 1, 1,
|
||||||
0.5, 0.0);
|
0.5, 0.0);
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,10 @@ struct _E_Config_Dialog_Data
|
||||||
Evas_Object *rel_mode_obj;
|
Evas_Object *rel_mode_obj;
|
||||||
Evas_Object *rel_to_obj;
|
Evas_Object *rel_to_obj;
|
||||||
Evas_Object *rel_align_obj;
|
Evas_Object *rel_align_obj;
|
||||||
|
Evas_Object *use_profile_obj;
|
||||||
|
Evas_Object *profile_list_obj;
|
||||||
|
Evas_Object *scale_custom_obj;
|
||||||
|
Evas_Object *scale_value_obj;
|
||||||
int restore;
|
int restore;
|
||||||
int hotplug;
|
int hotplug;
|
||||||
int acpi;
|
int acpi;
|
||||||
|
@ -101,6 +105,7 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
eina_stringshare_del(cs->id);
|
eina_stringshare_del(cs->id);
|
||||||
eina_stringshare_del(cs->rel_to);
|
eina_stringshare_del(cs->rel_to);
|
||||||
|
eina_stringshare_del(cs->profile);
|
||||||
free(cs);
|
free(cs);
|
||||||
}
|
}
|
||||||
free(cfdata->params);
|
free(cfdata->params);
|
||||||
|
@ -215,13 +220,126 @@ _cb_rot_set(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
|
e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef struct _Profile_Item
|
||||||
|
{
|
||||||
|
char *profile;
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
} Profile_Item;
|
||||||
|
|
||||||
|
static void
|
||||||
|
_profiles_list_selected_cb(void *data,
|
||||||
|
Evas_Object *obj EINA_UNUSED,
|
||||||
|
void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Profile_Item *p = data;
|
||||||
|
E_Config_Randr2_Screen *cs = _config_screen_find(p->cfdata);
|
||||||
|
if (!cs) return;
|
||||||
|
eina_stringshare_del(cs->profile);
|
||||||
|
cs->profile = eina_stringshare_add(p->profile);
|
||||||
|
e_config_dialog_changed_set(p->cfdata->cfd, EINA_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_profiles_list_item_del_cb(void *data,
|
||||||
|
Evas_Object *obj EINA_UNUSED,
|
||||||
|
void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Profile_Item *p = data;
|
||||||
|
free(p->profile);
|
||||||
|
free(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_basic_profile_list_fill(E_Config_Dialog_Data *cfdata, const char *prof_sel)
|
||||||
|
{
|
||||||
|
Evas_Object *list = cfdata->profile_list_obj;
|
||||||
|
Eina_List *names = elm_config_profile_list_get();
|
||||||
|
Eina_List *l;
|
||||||
|
Elm_Object_Item *sel_it = NULL;
|
||||||
|
const char *profile;
|
||||||
|
|
||||||
|
if (!names) return;
|
||||||
|
|
||||||
|
elm_list_clear(list);
|
||||||
|
|
||||||
|
if (!prof_sel)
|
||||||
|
{
|
||||||
|
elm_list_go(list);
|
||||||
|
elm_config_profile_list_free(names);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(names, l, profile)
|
||||||
|
{
|
||||||
|
Efreet_Desktop *desk = NULL;
|
||||||
|
const char *label, *ext, *pdir;
|
||||||
|
char buf[PATH_MAX];
|
||||||
|
Elm_Object_Item *list_it;
|
||||||
|
Evas_Object *ic;
|
||||||
|
Profile_Item *p;
|
||||||
|
|
||||||
|
pdir = elm_config_profile_dir_get(profile, EINA_TRUE);
|
||||||
|
if (!pdir) pdir = elm_config_profile_dir_get(profile, EINA_FALSE);
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "%s/profile.desktop", pdir);
|
||||||
|
desk = efreet_desktop_new(buf);
|
||||||
|
if ((desk) && (desk->name)) label = desk->name;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (desk) efreet_desktop_free(desk);
|
||||||
|
if (pdir) elm_config_profile_dir_free(pdir);
|
||||||
|
|
||||||
|
pdir = elm_config_profile_dir_get(profile, EINA_FALSE);
|
||||||
|
snprintf(buf, sizeof(buf), "%s/profile.desktop", pdir);
|
||||||
|
desk = efreet_desktop_new(buf);
|
||||||
|
if ((desk) && (desk->name)) label = desk->name;
|
||||||
|
else label = profile;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf[0] = 0;
|
||||||
|
if (pdir) snprintf(buf, sizeof(buf), "%s/icon.edj", pdir);
|
||||||
|
if ((desk) && (desk->icon) && (pdir))
|
||||||
|
snprintf(buf, sizeof(buf), "%s/%s", pdir, desk->icon);
|
||||||
|
ic = elm_icon_add(list);
|
||||||
|
ext = strrchr(buf, '.');
|
||||||
|
if (ext)
|
||||||
|
{
|
||||||
|
if (!strcmp(ext, ".edj")) elm_image_file_set(ic, buf, "icon");
|
||||||
|
else elm_image_file_set(ic, buf, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL,
|
||||||
|
1, 1);
|
||||||
|
evas_object_show(ic);
|
||||||
|
|
||||||
|
p = malloc(sizeof(Profile_Item));
|
||||||
|
p->profile = strdup(profile);
|
||||||
|
p->cfdata = cfdata;
|
||||||
|
list_it = elm_list_item_append(list, label, ic, NULL,
|
||||||
|
_profiles_list_selected_cb, p);
|
||||||
|
elm_object_item_del_cb_set(list_it, _profiles_list_item_del_cb);
|
||||||
|
if ((prof_sel) && (!strcmp(profile, prof_sel))) sel_it = list_it;
|
||||||
|
|
||||||
|
elm_config_profile_dir_free(pdir);
|
||||||
|
|
||||||
|
if (desk) efreet_desktop_free(desk);
|
||||||
|
}
|
||||||
|
|
||||||
|
elm_list_go(list);
|
||||||
|
|
||||||
|
if (sel_it) elm_list_item_selected_set(sel_it, EINA_TRUE);
|
||||||
|
|
||||||
|
elm_config_profile_list_free(names);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_basic_screen_info_fill(E_Config_Dialog_Data *cfdata, E_Config_Randr2_Screen *cs, E_Randr2_Screen *s)
|
_basic_screen_info_fill(E_Config_Dialog_Data *cfdata, E_Config_Randr2_Screen *cs, E_Randr2_Screen *s)
|
||||||
{
|
{
|
||||||
char buf[100];
|
char buf[100];
|
||||||
Eina_List *l;
|
Eina_List *items, *l;
|
||||||
E_Randr2_Mode *m;
|
E_Randr2_Mode *m;
|
||||||
Elm_Object_Item *it, *it_sel;
|
Elm_Object_Item *it, *it_sel;
|
||||||
|
Elm_Widget_Item *iwt;
|
||||||
void *dt;
|
void *dt;
|
||||||
|
|
||||||
if (!s) return;
|
if (!s) return;
|
||||||
|
@ -332,6 +450,39 @@ _basic_screen_info_fill(E_Config_Dialog_Data *cfdata, E_Config_Randr2_Screen *cs
|
||||||
|
|
||||||
elm_slider_value_set(cfdata->rel_align_obj, cs->rel_align);
|
elm_slider_value_set(cfdata->rel_align_obj, cs->rel_align);
|
||||||
|
|
||||||
|
if (cs->profile)
|
||||||
|
{
|
||||||
|
elm_check_state_set(cfdata->use_profile_obj, EINA_TRUE);
|
||||||
|
elm_object_disabled_set(cfdata->profile_list_obj, EINA_FALSE);
|
||||||
|
|
||||||
|
_basic_profile_list_fill(cfdata, cs->profile);
|
||||||
|
|
||||||
|
if (cs->scale_multiplier > 0.0)
|
||||||
|
{
|
||||||
|
elm_check_state_set(cfdata->scale_custom_obj, EINA_TRUE);
|
||||||
|
elm_object_disabled_set(cfdata->scale_value_obj, EINA_FALSE);
|
||||||
|
elm_slider_value_set(cfdata->scale_value_obj, cs->scale_multiplier);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
elm_check_state_set(cfdata->scale_custom_obj, EINA_FALSE);
|
||||||
|
elm_object_disabled_set(cfdata->scale_value_obj, EINA_TRUE);
|
||||||
|
elm_slider_value_set(cfdata->scale_value_obj, 1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
items = (Eina_List *)elm_list_items_get(cfdata->profile_list_obj);
|
||||||
|
EINA_LIST_FOREACH(items, l, iwt)
|
||||||
|
{
|
||||||
|
elm_list_item_selected_set(iwt, EINA_FALSE);
|
||||||
|
}
|
||||||
|
elm_check_state_set(cfdata->use_profile_obj, EINA_FALSE);
|
||||||
|
elm_object_disabled_set(cfdata->profile_list_obj, EINA_TRUE);
|
||||||
|
elm_object_disabled_set(cfdata->scale_custom_obj, EINA_TRUE);
|
||||||
|
elm_object_disabled_set(cfdata->scale_value_obj, EINA_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
if (!cs->rel_to)
|
if (!cs->rel_to)
|
||||||
elm_object_text_set(cfdata->rel_to_obj, "");
|
elm_object_text_set(cfdata->rel_to_obj, "");
|
||||||
else
|
else
|
||||||
|
@ -422,6 +573,67 @@ _cb_rel_to_set(void *data, Evas_Object *obj, void *event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_profile_enabled_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = data;
|
||||||
|
E_Config_Randr2_Screen *cs = _config_screen_find(cfdata);
|
||||||
|
if (!cs) return;
|
||||||
|
if (elm_check_state_get(obj))
|
||||||
|
{
|
||||||
|
eina_stringshare_del(cs->profile);
|
||||||
|
cs->profile = eina_stringshare_add("standard");
|
||||||
|
_basic_profile_list_fill(cfdata, cs->profile);
|
||||||
|
elm_object_disabled_set(cfdata->profile_list_obj, EINA_FALSE);
|
||||||
|
elm_object_disabled_set(cfdata->scale_custom_obj, EINA_FALSE);
|
||||||
|
if (cs->scale_multiplier > 0.0)
|
||||||
|
elm_object_disabled_set(cfdata->scale_value_obj, EINA_FALSE);
|
||||||
|
else
|
||||||
|
elm_object_disabled_set(cfdata->scale_value_obj, EINA_TRUE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
eina_stringshare_del(cs->profile);
|
||||||
|
cs->profile = NULL;
|
||||||
|
elm_list_clear(cfdata->profile_list_obj);
|
||||||
|
elm_object_disabled_set(cfdata->profile_list_obj, EINA_TRUE);
|
||||||
|
elm_object_disabled_set(cfdata->scale_custom_obj, EINA_TRUE);
|
||||||
|
elm_object_disabled_set(cfdata->scale_value_obj, EINA_TRUE);
|
||||||
|
}
|
||||||
|
e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_custom_scale_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = data;
|
||||||
|
E_Config_Randr2_Screen *cs = _config_screen_find(cfdata);
|
||||||
|
if (!cs) return;
|
||||||
|
if (elm_check_state_get(obj))
|
||||||
|
{
|
||||||
|
elm_object_disabled_set(cfdata->scale_value_obj, EINA_FALSE);
|
||||||
|
elm_slider_value_set(cfdata->scale_value_obj, 1.0);
|
||||||
|
cs->scale_multiplier = 1.0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
elm_object_disabled_set(cfdata->scale_value_obj, EINA_TRUE);
|
||||||
|
elm_slider_value_set(cfdata->scale_value_obj, 0.0);
|
||||||
|
cs->scale_multiplier = 0.0;
|
||||||
|
}
|
||||||
|
e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_cb_scale_value_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Config_Dialog_Data *cfdata = data;
|
||||||
|
E_Config_Randr2_Screen *cs = _config_screen_find(cfdata);
|
||||||
|
if (!cs) return;
|
||||||
|
cs->scale_multiplier = elm_slider_value_get(cfdata->scale_value_obj);
|
||||||
|
e_config_dialog_changed_set(cfdata->cfd, EINA_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_cb_rel_align_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
_cb_rel_align_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
@ -537,6 +749,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
bx = o;
|
bx = o;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
o = elm_table_add(win);
|
o = elm_table_add(win);
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
@ -574,6 +787,9 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
|
||||||
cs->priority = s->config.priority;
|
cs->priority = s->config.priority;
|
||||||
cs->rel_mode = s->config.relative.mode;
|
cs->rel_mode = s->config.relative.mode;
|
||||||
cs->enabled = s->config.enabled;
|
cs->enabled = s->config.enabled;
|
||||||
|
if (s->config.profile)
|
||||||
|
cs->profile = eina_stringshare_add(s->config.profile);
|
||||||
|
cs->scale_multiplier = s->config.scale_multiplier;
|
||||||
cfdata->screens = eina_list_append(cfdata->screens, cs);
|
cfdata->screens = eina_list_append(cfdata->screens, cs);
|
||||||
it = elm_hoversel_item_add(o, s->info.name,
|
it = elm_hoversel_item_add(o, s->info.name,
|
||||||
NULL, ELM_ICON_NONE,
|
NULL, ELM_ICON_NONE,
|
||||||
|
@ -649,13 +865,15 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
cfdata->size_obj = o;
|
cfdata->size_obj = o;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
o = elm_list_add(win);
|
o = elm_list_add(win);
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
elm_table_pack(tb, o, 1, 0, 1, 10);
|
elm_table_pack(tb, o, 1, 0, 1, 14);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
cfdata->modes_obj = o;
|
cfdata->modes_obj = o;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
o = elm_list_add(win);
|
o = elm_list_add(win);
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
@ -730,7 +948,54 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas EINA_UNUSED, E_Config_Dialog_Data
|
||||||
evas_object_smart_callback_add(o, "changed", _cb_rel_align_changed, cfdata);
|
evas_object_smart_callback_add(o, "changed", _cb_rel_align_changed, cfdata);
|
||||||
cfdata->rel_align_obj = o;
|
cfdata->rel_align_obj = o;
|
||||||
|
|
||||||
|
// // // // // // // // // // // // // // // // // // // // // // //
|
||||||
|
o = elm_separator_add(win);
|
||||||
|
elm_separator_horizontal_set(o, EINA_TRUE);
|
||||||
|
evas_object_size_hint_weight_set(o, 0.0, 0.0);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_table_pack(tb, o, 2, 9, 1, 1);
|
||||||
|
evas_object_show(o);
|
||||||
|
|
||||||
|
o = elm_check_add(win);
|
||||||
|
evas_object_size_hint_weight_set(o, 0.0, 0.0);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_object_text_set(o, _("Use Profile"));
|
||||||
|
elm_table_pack(tb, o, 2, 10, 1, 1);
|
||||||
|
evas_object_show(o);
|
||||||
|
cfdata->use_profile_obj = o;
|
||||||
|
evas_object_smart_callback_add(o, "changed", _cb_profile_enabled_changed, cfdata);
|
||||||
|
|
||||||
|
o = elm_list_add(win);
|
||||||
|
evas_object_size_hint_weight_set(o, 0.0, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
elm_table_pack(tb, o, 2, 11, 1, 1);
|
||||||
|
evas_object_show(o);
|
||||||
|
cfdata->profile_list_obj = o;
|
||||||
|
|
||||||
|
o = elm_check_add(win);
|
||||||
|
evas_object_size_hint_weight_set(o, 0.0, 0.0);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_object_text_set(o, _("Custom Scale"));
|
||||||
|
elm_table_pack(tb, o, 2, 12, 1, 1);
|
||||||
|
evas_object_show(o);
|
||||||
|
cfdata->scale_custom_obj = o;
|
||||||
|
evas_object_smart_callback_add(o, "changed", _cb_custom_scale_changed, cfdata);
|
||||||
|
|
||||||
|
o = elm_slider_add(win);
|
||||||
|
evas_object_size_hint_weight_set(o, 0.0, 0.0);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_object_text_set(o, _("Scale"));
|
||||||
|
elm_slider_unit_format_set(o, "%1.1f");
|
||||||
|
elm_slider_span_size_set(o, 100);
|
||||||
|
elm_slider_min_max_set(o, 0.5, 5.5);
|
||||||
|
elm_table_pack(tb, o, 2, 13, 1, 1);
|
||||||
|
evas_object_show(o);
|
||||||
|
cfdata->scale_value_obj = o;
|
||||||
|
evas_object_smart_callback_add(o, "changed", _cb_scale_value_changed, cfdata);
|
||||||
|
|
||||||
|
_basic_profile_list_fill(cfdata, NULL);
|
||||||
_basic_screen_info_fill(cfdata, first_cfg, first);
|
_basic_screen_info_fill(cfdata, first_cfg, first);
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
o = elm_box_add(win);
|
o = elm_box_add(win);
|
||||||
elm_box_horizontal_set(o, EINA_TRUE);
|
elm_box_horizontal_set(o, EINA_TRUE);
|
||||||
|
@ -809,6 +1074,10 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
|
||||||
cs->rotation = cs2->rotation;
|
cs->rotation = cs2->rotation;
|
||||||
cs->priority = cs2->priority;
|
cs->priority = cs2->priority;
|
||||||
cs->rel_mode = cs2->rel_mode;
|
cs->rel_mode = cs2->rel_mode;
|
||||||
|
if (cs->profile) eina_stringshare_del(cs->profile);
|
||||||
|
cs->profile = NULL;
|
||||||
|
if (cs2->profile) cs->profile = eina_stringshare_add(cs2->profile);
|
||||||
|
cs->scale_multiplier = cs2->scale_multiplier;
|
||||||
printf("APPLY %s .... rel mode %i\n", cs->id, cs->rel_mode);
|
printf("APPLY %s .... rel mode %i\n", cs->id, cs->rel_mode);
|
||||||
cs->enabled = cs2->enabled;
|
cs->enabled = cs2->enabled;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue