tasks - add options to show windows form all desks/screens

@feat
This commit is contained in:
Brian 'morlenxus' Miculcy 2020-11-11 13:42:48 +00:00 committed by Carsten Haitzler (Rasterman)
parent d2b860702e
commit 0e4b8509dd
3 changed files with 28 additions and 12 deletions

View File

@ -4,7 +4,8 @@
struct _E_Config_Dialog_Data struct _E_Config_Dialog_Data
{ {
Evas_Object *icon, *text; Evas_Object *icon, *text;
int show_all; int show_all_desktops;
int show_all_screens;
int minw, minh; int minw, minh;
int icon_only; int icon_only;
int text_only; int text_only;
@ -41,7 +42,8 @@ _config_tasks_module(Config_Item *ci)
static void static void
_fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata) _fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata)
{ {
cfdata->show_all = ci->show_all; cfdata->show_all_desktops = ci->show_all_desktops;
cfdata->show_all_screens = ci->show_all_screens;
cfdata->minw = ci->minw; cfdata->minw = ci->minw;
cfdata->minh = ci->minh; cfdata->minh = ci->minh;
cfdata->icon_only = ci->icon_only; cfdata->icon_only = ci->icon_only;
@ -87,7 +89,10 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_Dia
of = e_widget_framelist_add(evas, _("Display"), 0); of = e_widget_framelist_add(evas, _("Display"), 0);
ob = e_widget_check_add(evas, _("Show windows from all desktops"), ob = e_widget_check_add(evas, _("Show windows from all desktops"),
&(cfdata->show_all)); &(cfdata->show_all_desktops));
e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Show windows from all screens"),
&(cfdata->show_all_screens));
e_widget_framelist_object_append(of, ob); e_widget_framelist_object_append(of, ob);
cfdata->icon = ob = e_widget_check_add(evas, _("Show icon only"), cfdata->icon = ob = e_widget_check_add(evas, _("Show icon only"),
&(cfdata->icon_only)); &(cfdata->icon_only));
@ -133,7 +138,8 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
Config_Item *ci; Config_Item *ci;
ci = cfd->data; ci = cfd->data;
ci->show_all = cfdata->show_all; ci->show_all_desktops = cfdata->show_all_desktops;
ci->show_all_screens = cfdata->show_all_screens;
ci->minw = cfdata->minw; ci->minw = cfdata->minw;
ci->minh = cfdata->minh; ci->minh = cfdata->minh;
ci->icon_only = cfdata->icon_only; ci->icon_only = cfdata->icon_only;

View File

@ -120,7 +120,8 @@ e_modapi_init(E_Module *m)
#define T Config_Item #define T Config_Item
#define D conf_item_edd #define D conf_item_edd
E_CONFIG_VAL(D, T, id, STR); E_CONFIG_VAL(D, T, id, STR);
E_CONFIG_VAL(D, T, show_all, INT); E_CONFIG_VAL(D, T, show_all_desktops, INT);
E_CONFIG_VAL(D, T, show_all_screens, INT);
E_CONFIG_VAL(D, T, minw, INT); E_CONFIG_VAL(D, T, minw, INT);
E_CONFIG_VAL(D, T, minh, INT); E_CONFIG_VAL(D, T, minh, INT);
E_CONFIG_VAL(D, T, preview_size, INT); E_CONFIG_VAL(D, T, preview_size, INT);
@ -145,7 +146,8 @@ e_modapi_init(E_Module *m)
config = E_NEW(Config_Item, 1); config = E_NEW(Config_Item, 1);
config->id = eina_stringshare_add("0"); config->id = eina_stringshare_add("0");
config->show_all = 0; config->show_all_desktops = 0;
config->show_all_screens = 0;
config->minw = 100; config->minw = 100;
config->minh = 32; config->minh = 32;
config->preview = 0; config->preview = 0;
@ -603,13 +605,19 @@ _tasks_item_check_add(Tasks *tasks, E_Client *ec)
if (ec->stack.prev) return 1; if (ec->stack.prev) return 1;
if (_tasks_item_find(tasks, ec)) return 1; if (_tasks_item_find(tasks, ec)) return 1;
if (!tasks->config) return 1; if (!tasks->config) return 1;
if (!(tasks->config->show_all))
if (!(tasks->config->show_all_desktops))
{ {
if (ec->zone != tasks->zone) return 1;
if ((ec->desk != e_desk_current_get(ec->zone)) && if ((ec->desk != e_desk_current_get(ec->zone)) &&
(!ec->sticky)) (!ec->sticky))
return 1; return 1;
} }
if (!(tasks->config->show_all_screens))
{
if (ec->zone != tasks->zone) return 1;
}
_tasks_item_add(tasks, ec); _tasks_item_add(tasks, ec);
return 0; return 0;
} }
@ -780,7 +788,8 @@ _tasks_config_item_get(const char *id)
config = E_NEW(Config_Item, 1); config = E_NEW(Config_Item, 1);
config->id = eina_stringshare_add(id); config->id = eina_stringshare_add(id);
config->show_all = 0; config->show_all_desktops = 0;
config->show_all_screens = 0;
config->minw = 100; config->minw = 100;
config->minh = 32; config->minh = 32;
@ -1039,7 +1048,7 @@ _tasks_cb_item_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U
if (ev->button == 1) if (ev->button == 1)
{ {
if (!item->client->sticky && item->tasks->config->show_all) if (!item->client->sticky && item->tasks->config->show_all_desktops)
e_desk_show(item->client->desk); e_desk_show(item->client->desk);
if (evas_key_modifier_is_set(ev->modifiers, "Alt")) if (evas_key_modifier_is_set(ev->modifiers, "Alt"))
{ {
@ -1089,7 +1098,7 @@ _tasks_cb_item_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U
} }
else if (ev->button == 2) else if (ev->button == 2)
{ {
if (!item->client->sticky && item->tasks->config->show_all) if (!item->client->sticky && item->tasks->config->show_all_desktops)
e_desk_show(item->client->desk); e_desk_show(item->client->desk);
evas_object_raise(item->client->frame); evas_object_raise(item->client->frame);
evas_object_focus_set(item->client->frame, 1); evas_object_focus_set(item->client->frame, 1);

View File

@ -18,7 +18,8 @@ struct _Config
struct _Config_Item struct _Config_Item
{ {
const char *id; const char *id;
int show_all; int show_all_desktops;
int show_all_screens;
int minw, minh; int minw, minh;
int preview_size; int preview_size;
Eina_Bool icon_only; Eina_Bool icon_only;