Ravenlock's patch to allow client list to show windows from other screens

(xinerama/multi-head).


SVN revision: 28702
This commit is contained in:
Christopher Michael 2007-03-13 18:03:19 +00:00
parent bd6e0e66b9
commit 310eca0636
4 changed files with 15 additions and 2 deletions

View File

@ -506,6 +506,7 @@ e_config_init(void)
E_CONFIG_VAL(D, T, dpms_off_timeout, INT);
E_CONFIG_VAL(D, T, clientlist_group_by, INT);
E_CONFIG_VAL(D, T, clientlist_include_all_zones, INT);
E_CONFIG_VAL(D, T, clientlist_separate_with, INT);
E_CONFIG_VAL(D, T, clientlist_sort_by, INT);
E_CONFIG_VAL(D, T, clientlist_separate_iconified_apps, INT);
@ -1337,6 +1338,10 @@ e_config_init(void)
e_config->clientlist_warp_to_iconified_desktop = 0;
IFCFGEND;
IFCFG(0x0111);
e_config->clientlist_include_all_zones = 0;
IFCFGEND;
e_config->config_version = E_CONFIG_FILE_VERSION;
#if 0 /* example of new config */
@ -1450,6 +1455,7 @@ e_config_init(void)
E_CONFIG_LIMIT(e_config->screensaver_expose, 0, 2);
E_CONFIG_LIMIT(e_config->clientlist_group_by, 0, 2);
E_CONFIG_LIMIT(e_config->clientlist_include_all_zones, 0, 1);
E_CONFIG_LIMIT(e_config->clientlist_separate_with, 0, 2);
E_CONFIG_LIMIT(e_config->clientlist_sort_by, 0, 3);
E_CONFIG_LIMIT(e_config->clientlist_separate_iconified_apps, 0, 2);

View File

@ -52,7 +52,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 to be wiped - simply new values need to be put in
*/
#define E_CONFIG_FILE_GENERATION 0x0110
#define E_CONFIG_FILE_GENERATION 0x0111
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
#define E_EVAS_ENGINE_DEFAULT 0
@ -248,6 +248,7 @@ struct _E_Config
int dpms_off_timeout;
int clientlist_group_by;
int clientlist_include_all_zones;
int clientlist_separate_with;
int clientlist_sort_by;
int clientlist_separate_iconified_apps;

View File

@ -12,6 +12,7 @@ static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Co
struct _E_Config_Dialog_Data
{
int group_by;
int include_all_zones;
int separate_with;
int sort_by;
int separate_iconified_apps;
@ -44,6 +45,7 @@ static void
_fill_data(E_Config_Dialog_Data *cfdata)
{
cfdata->group_by = e_config->clientlist_group_by;
cfdata->include_all_zones = e_config->clientlist_include_all_zones;
cfdata->separate_with = e_config->clientlist_separate_with;
cfdata->sort_by = e_config->clientlist_sort_by;
cfdata->separate_iconified_apps = e_config->clientlist_separate_iconified_apps;
@ -70,6 +72,7 @@ static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
e_config->clientlist_group_by = cfdata->group_by;
e_config->clientlist_include_all_zones = cfdata->include_all_zones;
e_config->clientlist_separate_with = cfdata->separate_with;
e_config->clientlist_sort_by = cfdata->sort_by;
e_config->clientlist_separate_iconified_apps = cfdata->separate_iconified_apps;
@ -95,6 +98,8 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("Window Class"), E_CLIENTLIST_GROUP_CLASS, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Include windows from other screens"), &(cfdata->include_all_zones));
e_widget_framelist_object_append(of, ob);
//e_widget_list_object_append(o, of, 1, 1, 0.5);
e_widget_table_object_append(ot, of, 0, 0, 1, 1, 1, 1, 1, 1);

View File

@ -1182,7 +1182,8 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
border = l->data;
if (border->client.netwm.state.skip_taskbar) continue;
if (border->user_skip_winlist) continue;
if ((border->zone == zone) || (border->iconic))
if ((border->zone == zone) || (border->iconic) ||
(border->zone != zone && e_config->clientlist_include_all_zones))
borders = evas_list_append(borders, border);
}