forked from enlightenment/enlightenment
e: add a configuration value to group new windows with others from the same app.
We may want to alert the user it appeared though (make it urgent?). See r70370, fixes #40. SVN revision: 73856
This commit is contained in:
parent
75d902e518
commit
d4b871bafd
|
@ -343,6 +343,7 @@ group "E_Config" struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
value "window_placement_policy" int: 0;
|
value "window_placement_policy" int: 0;
|
||||||
|
value "window_grouping" int: 0;
|
||||||
value "focus_policy" int: 0;
|
value "focus_policy" int: 0;
|
||||||
value "focus_setting" int: 1;
|
value "focus_setting" int: 1;
|
||||||
value "pass_click_on" int: 1;
|
value "pass_click_on" int: 1;
|
||||||
|
|
|
@ -22,6 +22,7 @@ group "E_Config" struct {
|
||||||
value "use_composite" int: 0;
|
value "use_composite" int: 0;
|
||||||
value "language" string: "en_US.UTF-8";
|
value "language" string: "en_US.UTF-8";
|
||||||
value "window_placement_policy" int: 0;
|
value "window_placement_policy" int: 0;
|
||||||
|
value "window_grouping" int: 0;
|
||||||
value "focus_policy" int: 0;
|
value "focus_policy" int: 0;
|
||||||
value "focus_setting" int: 1;
|
value "focus_setting" int: 1;
|
||||||
value "pass_click_on" int: 1;
|
value "pass_click_on" int: 1;
|
||||||
|
|
|
@ -22,6 +22,7 @@ group "E_Config" struct {
|
||||||
value "use_composite" int: 0;
|
value "use_composite" int: 0;
|
||||||
value "language" string: "en_US.UTF-8";
|
value "language" string: "en_US.UTF-8";
|
||||||
value "window_placement_policy" int: 0;
|
value "window_placement_policy" int: 0;
|
||||||
|
value "window_grouping" int: 0;
|
||||||
value "focus_policy" int: 2;
|
value "focus_policy" int: 2;
|
||||||
value "focus_setting" int: 3;
|
value "focus_setting" int: 3;
|
||||||
value "pass_click_on" int: 1;
|
value "pass_click_on" int: 1;
|
||||||
|
|
|
@ -7345,7 +7345,7 @@ _e_border_eval0(E_Border *bd)
|
||||||
if (desk) e_border_desk_set(bd, desk);
|
if (desk) e_border_desk_set(bd, desk);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0) // keep all windows of one app/group on the same screen/desk
|
if (e_config->window_grouping) // FIXME: We may want to make the border "urgent" so that the user knows it appeared.
|
||||||
{
|
{
|
||||||
E_Border *bdl = NULL;
|
E_Border *bdl = NULL;
|
||||||
|
|
||||||
|
|
|
@ -672,6 +672,7 @@ e_config_init(void)
|
||||||
E_CONFIG_LIST(D, T, path_append_modules, _e_config_path_append_edd); /**/
|
E_CONFIG_LIST(D, T, path_append_modules, _e_config_path_append_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, path_append_backgrounds, _e_config_path_append_edd); /**/
|
E_CONFIG_LIST(D, T, path_append_backgrounds, _e_config_path_append_edd); /**/
|
||||||
E_CONFIG_VAL(D, T, window_placement_policy, INT); /**/
|
E_CONFIG_VAL(D, T, window_placement_policy, INT); /**/
|
||||||
|
E_CONFIG_VAL(D, T, window_grouping, INT); /**/
|
||||||
E_CONFIG_VAL(D, T, focus_policy, INT); /**/
|
E_CONFIG_VAL(D, T, focus_policy, INT); /**/
|
||||||
E_CONFIG_VAL(D, T, focus_setting, INT); /**/
|
E_CONFIG_VAL(D, T, focus_setting, INT); /**/
|
||||||
E_CONFIG_VAL(D, T, pass_click_on, INT); /**/
|
E_CONFIG_VAL(D, T, pass_click_on, INT); /**/
|
||||||
|
@ -1225,6 +1226,10 @@ e_config_load(void)
|
||||||
tcfg->desklock_background = NULL;
|
tcfg->desklock_background = NULL;
|
||||||
IFCFGEND;
|
IFCFGEND;
|
||||||
|
|
||||||
|
IFCFG(0x0152);
|
||||||
|
COPYVAL(window_grouping);
|
||||||
|
IFCFGEND;
|
||||||
|
|
||||||
e_config->config_version = E_CONFIG_FILE_VERSION;
|
e_config->config_version = E_CONFIG_FILE_VERSION;
|
||||||
_e_config_free(tcfg);
|
_e_config_free(tcfg);
|
||||||
}
|
}
|
||||||
|
@ -1249,6 +1254,7 @@ e_config_load(void)
|
||||||
E_CONFIG_LIMIT(e_config->show_desktop_icons, 0, 1);
|
E_CONFIG_LIMIT(e_config->show_desktop_icons, 0, 1);
|
||||||
E_CONFIG_LIMIT(e_config->edge_flip_dragging, 0, 1);
|
E_CONFIG_LIMIT(e_config->edge_flip_dragging, 0, 1);
|
||||||
E_CONFIG_LIMIT(e_config->window_placement_policy, E_WINDOW_PLACEMENT_SMART, E_WINDOW_PLACEMENT_MANUAL);
|
E_CONFIG_LIMIT(e_config->window_placement_policy, E_WINDOW_PLACEMENT_SMART, E_WINDOW_PLACEMENT_MANUAL);
|
||||||
|
E_CONFIG_LIMIT(e_config->window_grouping, 0, 1);
|
||||||
E_CONFIG_LIMIT(e_config->focus_policy, 0, 2);
|
E_CONFIG_LIMIT(e_config->focus_policy, 0, 2);
|
||||||
E_CONFIG_LIMIT(e_config->focus_setting, 0, 3);
|
E_CONFIG_LIMIT(e_config->focus_setting, 0, 3);
|
||||||
E_CONFIG_LIMIT(e_config->pass_click_on, 0, 1);
|
E_CONFIG_LIMIT(e_config->pass_click_on, 0, 1);
|
||||||
|
|
|
@ -37,7 +37,7 @@ typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme;
|
||||||
/* increment this whenever a new set of config values are added but the users
|
/* increment this whenever a new set of config values are added but the users
|
||||||
* config doesn't need to be wiped - simply new values need to be put in
|
* config doesn't need to be wiped - simply new values need to be put in
|
||||||
*/
|
*/
|
||||||
#define E_CONFIG_FILE_GENERATION 0x0151
|
#define E_CONFIG_FILE_GENERATION 0x0152
|
||||||
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
|
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
|
||||||
|
|
||||||
struct _E_Config
|
struct _E_Config
|
||||||
|
@ -87,6 +87,7 @@ struct _E_Config
|
||||||
Eina_List *path_append_backgrounds; // GUI
|
Eina_List *path_append_backgrounds; // GUI
|
||||||
Eina_List *path_append_messages; // GUI
|
Eina_List *path_append_messages; // GUI
|
||||||
int window_placement_policy; // GUI
|
int window_placement_policy; // GUI
|
||||||
|
int window_grouping; // GUI
|
||||||
int focus_policy; // GUI
|
int focus_policy; // GUI
|
||||||
int focus_setting; // GUI
|
int focus_setting; // GUI
|
||||||
int pass_click_on; // GUI
|
int pass_click_on; // GUI
|
||||||
|
|
|
@ -19,6 +19,7 @@ struct _E_Config_Dialog_Data
|
||||||
double border_shade_speed;
|
double border_shade_speed;
|
||||||
int use_app_icon;
|
int use_app_icon;
|
||||||
int window_placement_policy;
|
int window_placement_policy;
|
||||||
|
int window_grouping;
|
||||||
int desk_auto_switch;
|
int desk_auto_switch;
|
||||||
|
|
||||||
Eina_List *shading_list;
|
Eina_List *shading_list;
|
||||||
|
@ -63,6 +64,7 @@ _create_data(E_Config_Dialog *cfd __UNUSED__)
|
||||||
|
|
||||||
cfdata->window_placement_policy =
|
cfdata->window_placement_policy =
|
||||||
e_config->window_placement_policy;
|
e_config->window_placement_policy;
|
||||||
|
cfdata->window_grouping = e_config->window_grouping;
|
||||||
cfdata->desk_auto_switch = e_config->desk_auto_switch;
|
cfdata->desk_auto_switch = e_config->desk_auto_switch;
|
||||||
|
|
||||||
cfdata->border_shade_animate = e_config->border_shade_animate;
|
cfdata->border_shade_animate = e_config->border_shade_animate;
|
||||||
|
@ -83,6 +85,7 @@ static int
|
||||||
_basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
_basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
e_config->window_placement_policy = cfdata->window_placement_policy;
|
e_config->window_placement_policy = cfdata->window_placement_policy;
|
||||||
|
e_config->window_grouping = cfdata->window_grouping;
|
||||||
e_config->move_info_visible = cfdata->move_info_visible;
|
e_config->move_info_visible = cfdata->move_info_visible;
|
||||||
e_config->move_info_follows = cfdata->move_info_follows;
|
e_config->move_info_follows = cfdata->move_info_follows;
|
||||||
e_config->resize_info_visible = cfdata->resize_info_visible;
|
e_config->resize_info_visible = cfdata->resize_info_visible;
|
||||||
|
@ -101,6 +104,7 @@ static int
|
||||||
_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
return ((e_config->window_placement_policy != cfdata->window_placement_policy) ||
|
return ((e_config->window_placement_policy != cfdata->window_placement_policy) ||
|
||||||
|
(e_config->window_grouping != cfdata->window_grouping) ||
|
||||||
(e_config->move_info_visible != cfdata->move_info_visible) ||
|
(e_config->move_info_visible != cfdata->move_info_visible) ||
|
||||||
(e_config->move_info_follows != cfdata->move_info_follows) ||
|
(e_config->move_info_follows != cfdata->move_info_follows) ||
|
||||||
(e_config->resize_info_visible != cfdata->resize_info_visible) ||
|
(e_config->resize_info_visible != cfdata->resize_info_visible) ||
|
||||||
|
@ -170,6 +174,9 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
|
||||||
ow = e_widget_radio_add(evas, _("Place manually with the mouse"),
|
ow = e_widget_radio_add(evas, _("Place manually with the mouse"),
|
||||||
E_WINDOW_PLACEMENT_MANUAL, rg);
|
E_WINDOW_PLACEMENT_MANUAL, rg);
|
||||||
e_widget_framelist_object_append(of, ow);
|
e_widget_framelist_object_append(of, ow);
|
||||||
|
ow = e_widget_check_add(evas, _("Group with windows of the same application"),
|
||||||
|
&(cfdata->window_grouping));
|
||||||
|
e_widget_framelist_object_append(of, ow);
|
||||||
e_widget_list_object_append(ol, of, 1, 1, 0.5);
|
e_widget_list_object_append(ol, of, 1, 1, 0.5);
|
||||||
ow = e_widget_check_add(evas, _("Switch to desktop of new window"),
|
ow = e_widget_check_add(evas, _("Switch to desktop of new window"),
|
||||||
&(cfdata->desk_auto_switch));
|
&(cfdata->desk_auto_switch));
|
||||||
|
|
Loading…
Reference in New Issue