Patch from Eric 'Ravenlock' Schuele <ravenlock@comcast.net> to provide winlist config

options that allow showing/hiding iconified apps from other desks/screens in
the winlist.


SVN revision: 27457
This commit is contained in:
Christopher Michael 2006-12-15 05:03:09 +00:00
parent 23c1258e61
commit 4edd5b4e41
6 changed files with 115 additions and 3 deletions

View File

@ -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);

View File

@ -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

View File

@ -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;

View File

@ -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)

View File

@ -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

View File

@ -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();
}