Add option to set hidden state or not

This commit is contained in:
Carsten Haitzler 2023-06-17 11:56:57 +01:00
parent 54c65ae38a
commit b775f51c82
7 changed files with 32 additions and 16 deletions

View File

@ -58,7 +58,8 @@ group "E_Config" struct {
value "winlist_mode" int: 1;
value "winlist_large_size" double: 0.6666;
value "winlist_list_size" double: 0.3333;
value "winlist_list_no_miniatures" int: 0;
value "winlist_list_no_miniatures" uchar: 0;
value "no_state_hidden_desktop" uchar: 0;
value "maximize_policy" int: 49;
value "allow_manip" int: 0;
value "border_fix_on_shelf_toggle" int: 0;

View File

@ -54,7 +54,8 @@ group "E_Config" struct {
value "winlist_mode" int: 1;
value "winlist_large_size" double: 0.6666;
value "winlist_list_size" double: 0.3333;
value "winlist_list_no_miniatures" int: 0;
value "winlist_list_no_miniatures" uchar: 0;
value "no_state_hidden_desktop" uchar: 0;
value "maximize_policy" int: 50;
value "allow_manip" int: 0;
value "border_fix_on_shelf_toggle" int: 0;

View File

@ -54,7 +54,8 @@ group "E_Config" struct {
value "winlist_mode" int: 1;
value "winlist_large_size" double: 0.6666;
value "winlist_list_size" double: 0.3333;
value "winlist_list_no_miniatures" int: 0;
value "winlist_list_no_miniatures" uchar: 0;
value "no_state_hidden_desktop" uchar: 0;
value "maximize_policy" int: 50;
value "allow_manip" int: 0;
value "border_fix_on_shelf_toggle" int: 0;

View File

@ -750,6 +750,7 @@ _e_config_edd_init(Eina_Bool old)
E_CONFIG_VAL(D, T, winlist_list_size, DOUBLE); /**/
E_CONFIG_VAL(D, T, winlist_large_size, DOUBLE); /**/
E_CONFIG_VAL(D, T, winlist_list_no_miniatures, UCHAR); /**/
E_CONFIG_VAL(D, T, no_state_hidden_desktop, UCHAR); /**/
E_CONFIG_VAL(D, T, maximize_policy, INT); /**/
E_CONFIG_VAL(D, T, allow_manip, INT); /**/
E_CONFIG_VAL(D, T, border_fix_on_shelf_toggle, INT); /**/

View File

@ -135,6 +135,7 @@ struct _E_Config
double winlist_list_size; // GUI
double winlist_large_size; // GUI
Eina_Bool winlist_list_no_miniatures; // GUI
Eina_Bool no_state_hidden_desktop; // GUI
int maximize_policy; // GUI
int allow_manip; // GUI
int border_fix_on_shelf_toggle; // GUI

View File

@ -597,8 +597,11 @@ e_hints_window_state_set(E_Client *ec)
if (ec->netwm.state.skip_pager)
state[num++] = ECORE_X_WINDOW_STATE_SKIP_PAGER;
}
if (ec->netwm.state.hidden)
state[num++] = ECORE_X_WINDOW_STATE_HIDDEN;
if (!e_config->no_state_hidden_desktop)
{
if (ec->netwm.state.hidden)
state[num++] = ECORE_X_WINDOW_STATE_HIDDEN;
}
if (ec->netwm.state.fullscreen)
state[num++] = ECORE_X_WINDOW_STATE_FULLSCREEN;

View File

@ -41,7 +41,8 @@ struct _E_Config_Dialog_Data
int maximize_direction;
int maximized_allow_manip;
int border_fix_on_shelf_toggle;
int allow_above_fullscreen;
int allow_above_fullscreen;
int state_hidden_desktop;
};
E_Config_Dialog *
@ -90,6 +91,7 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED)
cfdata->transient.iconify = e_config->transient.iconify;
cfdata->maximize_policy = (e_config->maximize_policy & E_MAXIMIZE_TYPE);
cfdata->allow_above_fullscreen = e_config->allow_above_fullscreen;
cfdata->state_hidden_desktop = ! e_config->no_state_hidden_desktop;
if (cfdata->maximize_policy == E_MAXIMIZE_NONE)
cfdata->maximize_policy = E_MAXIMIZE_FULLSCREEN;
cfdata->maximize_direction =
@ -133,6 +135,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
e_config->allow_manip = cfdata->maximized_allow_manip;
e_config->border_fix_on_shelf_toggle = cfdata->border_fix_on_shelf_toggle;
e_config->allow_above_fullscreen = cfdata->allow_above_fullscreen;
e_config->no_state_hidden_desktop = !cfdata->state_hidden_desktop;
e_config_save_queue();
return 1; /* Apply was OK */
}
@ -141,16 +144,16 @@ static int
_basic_check_changed(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
{
return ((e_config->use_resist != cfdata->use_resist) ||
(e_config->desk_resist != cfdata->desk_resist) ||
(e_config->window_resist != cfdata->window_resist) ||
(e_config->gadget_resist != cfdata->gadget_resist) ||
(e_config->geometry_auto_resize_limit != cfdata->geometry_auto_resize_limit) ||
(e_config->desk_resist != cfdata->desk_resist) ||
(e_config->window_resist != cfdata->window_resist) ||
(e_config->gadget_resist != cfdata->gadget_resist) ||
(e_config->geometry_auto_resize_limit != cfdata->geometry_auto_resize_limit) ||
(e_config->geometry_auto_move != cfdata->geometry_auto_move) ||
(!EINA_DBL_EQ(e_config->border_keyboard.timeout, cfdata->border_keyboard.timeout)) ||
(e_config->border_keyboard.move.dx != cfdata->border_keyboard.move.dx) ||
(e_config->border_keyboard.move.dy != cfdata->border_keyboard.move.dx) ||
(e_config->border_keyboard.resize.dx != cfdata->border_keyboard.resize.dx) ||
(e_config->border_keyboard.resize.dy != cfdata->border_keyboard.resize.dx) ||
(!EINA_DBL_EQ(e_config->border_keyboard.timeout, cfdata->border_keyboard.timeout)) ||
(e_config->border_keyboard.move.dx != cfdata->border_keyboard.move.dx) ||
(e_config->border_keyboard.move.dy != cfdata->border_keyboard.move.dx) ||
(e_config->border_keyboard.resize.dx != cfdata->border_keyboard.resize.dx) ||
(e_config->border_keyboard.resize.dy != cfdata->border_keyboard.resize.dx) ||
(e_config->transient.move != cfdata->transient.move) ||
(e_config->transient.resize != cfdata->transient.resize) ||
(e_config->transient.raise != cfdata->transient.raise) ||
@ -161,7 +164,9 @@ _basic_check_changed(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfd
(e_config->maximize_policy != (cfdata->maximize_policy | cfdata->maximize_direction)) ||
(e_config->allow_manip != cfdata->maximized_allow_manip) ||
(e_config->border_fix_on_shelf_toggle != cfdata->border_fix_on_shelf_toggle) ||
(e_config->allow_above_fullscreen != cfdata->allow_above_fullscreen));
(e_config->allow_above_fullscreen != cfdata->allow_above_fullscreen) ||
(e_config->no_state_hidden_desktop == cfdata->state_hidden_desktop)
);
}
static Evas_Object *
@ -267,6 +272,9 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dialog_Data
ow = e_widget_check_add(evas, _("Adjust windows on shelf hide"),
&(cfdata->border_fix_on_shelf_toggle));
e_widget_list_object_append(ol, ow, 1, 0, 0.5);
ow = e_widget_check_add(evas, _("Set hidden state when not on current desktop"),
&(cfdata->state_hidden_desktop));
e_widget_list_object_append(ol, ow, 1, 0, 0.5);
e_widget_toolbook_page_append(otb, NULL, _("Automatic"), ol,
1, 1, 1, 0, 0.0, 0.0);