diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 49a9e7bda..8cf376ec8 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -397,6 +397,8 @@ e_config_init(void) E_CONFIG_VAL(D, T, winlist_scroll_animate, INT); /**/ E_CONFIG_VAL(D, T, winlist_scroll_speed, DOUBLE); /**/ E_CONFIG_VAL(D, T, winlist_list_show_iconified, INT); /**/ + E_CONFIG_VAL(D, T, winlist_list_show_other_desk_iconified, INT); /**/ + E_CONFIG_VAL(D, T, winlist_list_show_other_screen_iconified, INT); /**/ E_CONFIG_VAL(D, T, winlist_list_show_other_desk_windows, INT); /**/ E_CONFIG_VAL(D, T, winlist_list_show_other_screen_windows, INT); /**/ E_CONFIG_VAL(D, T, winlist_list_uncover_while_selecting, INT); /**/ @@ -601,6 +603,8 @@ e_config_init(void) e_config->winlist_scroll_animate = 1; e_config->winlist_scroll_speed = 0.1; e_config->winlist_list_show_iconified = 1; + e_config->winlist_list_show_other_desk_iconified = 1; + e_config->winlist_list_show_other_screen_iconified = 0; e_config->winlist_list_show_other_desk_windows = 0; e_config->winlist_list_show_other_screen_windows = 0; e_config->winlist_list_uncover_while_selecting = 0; @@ -1314,6 +1318,8 @@ e_config_init(void) E_CONFIG_LIMIT(e_config->winlist_scroll_animate, 0, 1); E_CONFIG_LIMIT(e_config->winlist_scroll_speed, 0.0, 1.0); E_CONFIG_LIMIT(e_config->winlist_list_show_iconified, 0, 1); + E_CONFIG_LIMIT(e_config->winlist_list_show_other_desk_iconified, 0, 1); + E_CONFIG_LIMIT(e_config->winlist_list_show_other_screen_iconified, 0, 1); E_CONFIG_LIMIT(e_config->winlist_list_show_other_desk_windows, 0, 1); E_CONFIG_LIMIT(e_config->winlist_list_show_other_screen_windows, 0, 1); E_CONFIG_LIMIT(e_config->winlist_list_uncover_while_selecting, 0, 1); diff --git a/src/bin/e_config.h b/src/bin/e_config.h index e790eb8db..bd9e6a57a 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -51,7 +51,7 @@ typedef Eet_Data_Descriptor E_Config_DD; /* increment this whenever a new set of config values are added but the users * config doesn't need top be wiped - simply new values need to be put in */ -#define E_CONFIG_FILE_GENERATION 0x0103 +#define E_CONFIG_FILE_GENERATION 0x0104 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION) #define E_EVAS_ENGINE_DEFAULT 0 @@ -148,6 +148,8 @@ struct _E_Config int winlist_scroll_animate; // GUI double winlist_scroll_speed; // GUI int winlist_list_show_iconified; // GUI + int winlist_list_show_other_desk_iconified; // GUI + int winlist_list_show_other_screen_iconified; // GUI int winlist_list_show_other_desk_windows; // GUI int winlist_list_show_other_screen_windows; // GUI int winlist_list_uncover_while_selecting; // GUI diff --git a/src/bin/e_int_config_winlist.c b/src/bin/e_int_config_winlist.c index bbf1bd8ec..0b72a77c8 100644 --- a/src/bin/e_int_config_winlist.c +++ b/src/bin/e_int_config_winlist.c @@ -13,6 +13,8 @@ struct _E_Config_Dialog_Data int warp_at_end; int scroll_animate; int list_show_iconified; + int list_show_other_desk_iconified; + int list_show_other_screen_iconified; int list_show_other_desk_windows; int list_show_other_screen_windows; int list_uncover_while_selecting; @@ -65,6 +67,8 @@ _fill_data(E_Config_Dialog_Data *cfdata) cfdata->scroll_animate = e_config->winlist_scroll_animate; cfdata->scroll_speed = e_config->winlist_scroll_speed; cfdata->list_show_iconified = e_config->winlist_list_show_iconified; + cfdata->list_show_other_desk_iconified = e_config->winlist_list_show_other_desk_iconified; + cfdata->list_show_other_screen_iconified = e_config->winlist_list_show_other_screen_iconified; cfdata->list_show_other_desk_windows = e_config->winlist_list_show_other_desk_windows; cfdata->list_show_other_screen_windows = e_config->winlist_list_show_other_screen_windows; cfdata->list_uncover_while_selecting = e_config->winlist_list_uncover_while_selecting; @@ -101,6 +105,8 @@ static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { e_config->winlist_list_show_iconified = cfdata->list_show_iconified; + e_config->winlist_list_show_other_desk_iconified = cfdata->list_show_other_desk_iconified; + e_config->winlist_list_show_other_screen_iconified = cfdata->list_show_other_screen_iconified; e_config->winlist_list_show_other_desk_windows = cfdata->list_show_other_desk_windows; e_config->winlist_list_show_other_screen_windows = cfdata->list_show_other_screen_windows; e_config->winlist_list_uncover_while_selecting = cfdata->list_uncover_while_selecting; @@ -125,6 +131,10 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf of = e_widget_framelist_add(evas, _("General Settings"), 0); ob = e_widget_check_add(evas, _("Show iconified windows"), &(cfdata->list_show_iconified)); e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, _("Show iconified windows from other desks"), &(cfdata->list_show_other_desk_iconified)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, _("Show iconified windows from other screens"), &(cfdata->list_show_other_screen_iconified)); + e_widget_framelist_object_append(of, ob); ob = e_widget_check_add(evas, _("Show windows from other desks"), &(cfdata->list_show_other_desk_windows)); e_widget_framelist_object_append(of, ob); ob = e_widget_check_add(evas, _("Show windows from other screens"), &(cfdata->list_show_other_screen_windows)); @@ -161,6 +171,8 @@ static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { e_config->winlist_list_show_iconified = cfdata->list_show_iconified; + e_config->winlist_list_show_other_desk_iconified = cfdata->list_show_other_desk_iconified; + e_config->winlist_list_show_other_screen_iconified = cfdata->list_show_other_screen_iconified; e_config->winlist_list_show_other_desk_windows = cfdata->list_show_other_desk_windows; e_config->winlist_list_show_other_screen_windows = cfdata->list_show_other_screen_windows; e_config->winlist_list_uncover_while_selecting = cfdata->list_uncover_while_selecting; diff --git a/src/bin/e_ipc_handlers.h b/src/bin/e_ipc_handlers.h index 64d12f153..3479e0788 100644 --- a/src/bin/e_ipc_handlers.h +++ b/src/bin/e_ipc_handlers.h @@ -3867,6 +3867,86 @@ break; #endif #undef HDL +/****************************************************************************/ +#define HDL E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_ICONIFIED_SET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-winlist-list-show-other-desk-iconified-set", 1, "Set whether winlist (alt+tab) will show iconfied windows from other desks", 0, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_INT(atoi(params[0]), HDL); +#elif (TYPE == E_WM_IN) + START_INT(policy, HDL); + e_config->winlist_list_show_other_desk_iconified = policy; + E_CONFIG_LIMIT(e_config->winlist_list_show_other_desk_iconified, 0, 1); + SAVE; + END_INT; +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_ICONIFIED_GET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-winlist-list-show-other-desk-iconified-get", 0, "Get whether winlist (alt+tab) will show iconfied windows from other desks", 1, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_NULL(HDL); +#elif (TYPE == E_WM_IN) + SEND_INT(e_config->winlist_list_show_other_desk_iconified, E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_ICONIFIED_GET_REPLY, HDL); +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_ICONIFIED_GET_REPLY +#if (TYPE == E_REMOTE_OPTIONS) +#elif (TYPE == E_REMOTE_OUT) +#elif (TYPE == E_WM_IN) +#elif (TYPE == E_REMOTE_IN) + START_INT(val, HDL); + printf("REPLY: POLICY=%d\n", val); + END_INT; +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_WINLIST_LIST_SHOW_OTHER_SCREEN_ICONIFIED_SET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-winlist-list-show-other-screen-iconified-set", 1, "Set whether winlist (alt+tab) will show iconfied windows from other screens", 0, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_INT(atoi(params[0]), HDL); +#elif (TYPE == E_WM_IN) + START_INT(policy, HDL); + e_config->winlist_list_show_other_screen_iconified = policy; + E_CONFIG_LIMIT(e_config->winlist_list_show_other_screen_iconified, 0, 1); + SAVE; + END_INT; +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_WINLIST_LIST_SHOW_OTHER_SCREEN_ICONIFIED_GET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-winlist-list-show-other-screen-iconified-get", 0, "Get whether winlist (alt+tab) will show iconfied windows from other screens", 1, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_NULL(HDL); +#elif (TYPE == E_WM_IN) + SEND_INT(e_config->winlist_list_show_other_screen_iconified, E_IPC_OP_WINLIST_LIST_SHOW_OTHER_SCREEN_ICONIFIED_GET_REPLY, HDL); +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_WINLIST_LIST_SHOW_OTHER_SCREEN_ICONIFIED_GET_REPLY +#if (TYPE == E_REMOTE_OPTIONS) +#elif (TYPE == E_REMOTE_OUT) +#elif (TYPE == E_WM_IN) +#elif (TYPE == E_REMOTE_IN) + START_INT(val, HDL); + printf("REPLY: POLICY=%d\n", val); + END_INT; +#endif +#undef HDL + /****************************************************************************/ #define HDL E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_WINDOWS_SET #if (TYPE == E_REMOTE_OPTIONS) diff --git a/src/bin/e_ipc_handlers_list.h b/src/bin/e_ipc_handlers_list.h index 525d088b9..08289d455 100644 --- a/src/bin/e_ipc_handlers_list.h +++ b/src/bin/e_ipc_handlers_list.h @@ -133,6 +133,10 @@ #define E_IPC_OP_WINLIST_LIST_SHOW_ICONIFIED_SET 133 #define E_IPC_OP_WINLIST_LIST_SHOW_ICONIFIED_GET 134 #define E_IPC_OP_WINLIST_LIST_SHOW_ICONIFIED_GET_REPLY 135 +/* + * WINLIST_LIST_SHOW_OTHER_DESK_ICONIFIED and WINLIST_LIST_SHOW_OTHER_SCREEN_ICONIFIED + * can be found below, starting at 366. + */ #define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_WINDOWS_SET 136 #define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_WINDOWS_GET 137 #define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_WINDOWS_GET_REPLY 138 @@ -393,3 +397,10 @@ #define E_IPC_OP_USE_COMPOSITE_SET 363 #define E_IPC_OP_USE_COMPOSITE_GET 364 #define E_IPC_OP_USE_COMPOSITE_GET_REPLY 365 + +#define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_ICONIFIED_SET 366 +#define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_ICONIFIED_GET 367 +#define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_DESK_ICONIFIED_GET_REPLY 368 +#define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_SCREEN_ICONIFIED_SET 369 +#define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_SCREEN_ICONIFIED_GET 370 +#define E_IPC_OP_WINLIST_LIST_SHOW_OTHER_SCREEN_ICONIFIED_GET_REPLY 371 diff --git a/src/bin/e_winlist.c b/src/bin/e_winlist.c index 33cc0f68b..6102e3dae 100644 --- a/src/bin/e_winlist.c +++ b/src/bin/e_winlist.c @@ -401,7 +401,9 @@ _e_winlist_border_add(E_Border *bd, E_Zone *zone, E_Desk *desk) { if (!e_config->winlist_list_show_iconified) ok = 0; if ((bd->zone != zone) && - (!e_config->winlist_list_show_other_screen_windows)) ok = 0; + (!e_config->winlist_list_show_other_screen_iconified)) ok = 0; + if ((bd->desk != desk) && + (!e_config->winlist_list_show_other_desk_iconified)) ok = 0; } else { @@ -948,4 +950,3 @@ _e_winlist_cb_item_mouse_in(void *data, Evas *evas, Evas_Object *obj, _e_winlist_show_active(); _e_winlist_activate(); } -