Client list update.

SVN revision: 13741
This commit is contained in:
sebastid 2005-03-15 10:26:05 +00:00 committed by sebastid
parent 20d71e8ac6
commit a91a6bc607
14 changed files with 30 additions and 168 deletions

View File

@ -37,7 +37,6 @@ e_focus.h \
e_place.h \
e_resist.h \
e_startup.h \
e_iconify.h \
e_hints.h \
e_gadman.h \
e_signals.h \
@ -75,7 +74,6 @@ e_focus.c \
e_place.c \
e_resist.c \
e_startup.c \
e_iconify.c \
e_hints.c \
e_gadman.c \
e_signals.c \

View File

@ -310,9 +310,7 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map)
bd->changed = 1;
bd->zone = e_zone_current_get(con);
bd->zone->clients = evas_list_append(bd->zone->clients, bd);
bd->desk = e_desk_current_get(bd->zone);
bd->desk->clients = evas_list_append(bd->desk->clients, bd);
con->clients = evas_list_append(con->clients, bd);
borders = evas_list_append(borders, bd);
@ -338,8 +336,6 @@ e_border_zone_set(E_Border *bd, E_Zone *zone)
E_OBJECT_CHECK(zone);
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
if (bd->zone == zone) return;
bd->zone->clients = evas_list_remove(bd->zone->clients, bd);
zone->clients = evas_list_append(zone->clients, bd);
bd->zone = zone;
if (bd->desk->zone != bd->zone)
@ -377,8 +373,6 @@ e_border_desk_set(E_Border *bd, E_Desk *desk)
E_OBJECT_CHECK(desk);
E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
if (bd->desk == desk) return;
bd->desk->clients = evas_list_remove(bd->desk->clients, bd);
desk->clients = evas_list_append(desk->clients, bd);
bd->desk = desk;
e_border_zone_set(bd, desk->zone);
@ -947,9 +941,6 @@ e_border_uniconify(E_Border *bd)
e_border_desk_set(bd, desk);
bd->iconic = 0;
e_border_show(bd);
/* FIXME: DEPRECATED?
e_iconify_border_remove(bd);
*/
edje_object_signal_emit(bd->bg_object, "uniconify", "");
}
iconic = 0;
@ -1055,6 +1046,11 @@ e_border_idler_before(void)
}
}
Evas_List *
e_border_clients_get()
{
return borders;
}
/* local subsystem functions */
static void
@ -1111,8 +1107,6 @@ _e_border_free(E_Border *bd)
ecore_x_window_del(bd->win);
bd->container->clients = evas_list_remove(bd->container->clients, bd);
bd->zone->clients = evas_list_remove(bd->zone->clients, bd);
bd->desk->clients = evas_list_remove(bd->desk->clients, bd);
borders = evas_list_remove(borders, bd);
free(bd);
@ -3503,10 +3497,6 @@ _e_border_reorder_after(E_Border *bd, E_Border *after)
{
bd->container->clients = evas_list_remove(bd->container->clients, bd);
bd->container->clients = evas_list_append_relative(bd->container->clients, bd, after);
bd->zone->clients = evas_list_remove(bd->zone->clients, bd);
bd->zone->clients = evas_list_append_relative(bd->zone->clients, bd, after);
bd->desk->clients = evas_list_remove(bd->desk->clients, bd);
bd->desk->clients = evas_list_append_relative(bd->desk->clients, bd, after);
borders = evas_list_remove(borders, bd);
borders = evas_list_append_relative(borders, bd, after);
}
@ -3514,10 +3504,6 @@ _e_border_reorder_after(E_Border *bd, E_Border *after)
{
bd->container->clients = evas_list_remove(bd->container->clients, bd);
bd->container->clients = evas_list_append(bd->container->clients, bd);
bd->zone->clients = evas_list_remove(bd->zone->clients, bd);
bd->zone->clients = evas_list_append(bd->zone->clients, bd);
bd->desk->clients = evas_list_remove(bd->desk->clients, bd);
bd->desk->clients = evas_list_append(bd->desk->clients, bd);
borders = evas_list_remove(borders, bd);
borders = evas_list_append(borders, bd);
}
@ -3530,10 +3516,6 @@ _e_border_reorder_before(E_Border *bd, E_Border *before)
{
bd->container->clients = evas_list_remove(bd->container->clients, bd);
bd->container->clients = evas_list_prepend_relative(bd->container->clients, bd, before);
bd->zone->clients = evas_list_remove(bd->zone->clients, bd);
bd->zone->clients = evas_list_prepend_relative(bd->zone->clients, bd, before);
bd->desk->clients = evas_list_remove(bd->desk->clients, bd);
bd->desk->clients = evas_list_prepend_relative(bd->desk->clients, bd, before);
borders = evas_list_remove(borders, bd);
borders = evas_list_prepend_relative(borders, bd, before);
}
@ -3541,10 +3523,6 @@ _e_border_reorder_before(E_Border *bd, E_Border *before)
{
bd->container->clients = evas_list_remove(bd->container->clients, bd);
bd->container->clients = evas_list_prepend(bd->container->clients, bd);
bd->zone->clients = evas_list_remove(bd->zone->clients, bd);
bd->zone->clients = evas_list_prepend(bd->zone->clients, bd);
bd->desk->clients = evas_list_remove(bd->desk->clients, bd);
bd->desk->clients = evas_list_prepend(bd->desk->clients, bd);
borders = evas_list_remove(borders, bd);
borders = evas_list_prepend(borders, bd);
}

View File

@ -306,7 +306,7 @@ EAPI E_Border *e_border_focused_get(void);
EAPI void e_border_idler_before(void);
EAPI void e_border_iconified_list(void);
EAPI Evas_List *e_border_clients_get();
extern EAPI int E_EVENT_BORDER_RESIZE;
extern EAPI int E_EVENT_BORDER_MOVE;

View File

@ -227,14 +227,6 @@ e_container_lower(E_Container *con)
}
}
Evas_List *
e_container_clients_list_get(E_Container *con)
{
E_OBJECT_CHECK_RETURN(con, NULL);
E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL);
return con->clients;
}
E_Zone *
e_container_zone_at_point_get(E_Container *con, int x, int y)
{

View File

@ -84,7 +84,6 @@ EAPI void e_container_move_resize(E_Container *con, int x, int y, int w,
EAPI void e_container_raise(E_Container *con);
EAPI void e_container_lower(E_Container *con);
EAPI Evas_List *e_container_clients_list_get(E_Container *con);
EAPI E_Zone *e_container_zone_at_point_get(E_Container *con, int x, int y);
EAPI E_Zone *e_container_zone_number_get(E_Container *con, int num);

View File

@ -43,7 +43,6 @@ e_desk_new(E_Zone *zone, int x, int y)
desk = E_OBJECT_ALLOC(E_Desk, E_DESK_TYPE, _e_desk_free);
if (!desk) return NULL;
desk->clients = NULL;
desk->zone = zone;
desk->num = ++desk_count;
snprintf(name, sizeof(name), "Desktop %d, %d", x, y);
@ -237,7 +236,6 @@ static void
_e_desk_free(E_Desk *desk)
{
E_FREE(desk->name);
evas_list_free(desk->clients);
free(desk);
}

View File

@ -22,8 +22,6 @@ struct _E_Desk
char visible : 1;
Evas_Object *bg_object;
Evas_List *clients;
};
struct _E_Event_Desk_Show

View File

@ -1,54 +0,0 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#include "e.h"
static Evas_List *_e_iconic_borders = NULL;
int
e_iconify_init(void)
{
/* FIXME: initialize some ecore events for iconify/uniconify
* (for things like modules to upate state
*/
return 1;
}
int
e_iconify_shutdown(void)
{
evas_list_free(_e_iconic_borders);
return 1;
}
Evas_List *
e_iconify_clients_list_get(void)
{
return _e_iconic_borders;
}
int
e_iconify_border_iconfied(E_Border *bd)
{
if (evas_list_find(_e_iconic_borders, bd)) return 1;
else return 0;
}
void
e_iconify_border_add(E_Border *bd)
{
E_OBJECT_CHECK(bd);
/* FIXME send iconify event for this border */
_e_iconic_borders = evas_list_append(_e_iconic_borders, bd);
}
void
e_iconify_border_remove(E_Border *bd)
{
/* FIXME send uniconify event for this border */
_e_iconic_borders = evas_list_remove(_e_iconic_borders, bd);
}

View File

@ -1,17 +0,0 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#ifdef E_TYPEDEFS
#else
#ifndef E_ICONIFY_H
#define E_ICONIFY_H
EAPI int e_iconify_init(void);
EAPI int e_iconify_shutdown(void);
EAPI Evas_List *e_iconify_clients_list_get(void);
EAPI int e_iconify_border_iconfied(E_Border *bd);
EAPI void e_iconify_border_add(E_Border *bd);
EAPI void e_iconify_border_remove(E_Border *bd);
#endif
#endif

View File

@ -27,7 +27,6 @@
#include "e_place.h"
#include "e_resist.h"
#include "e_startup.h"
#include "e_iconify.h"
#include "e_hints.h"
#include "e_gadman.h"
#include "e_signals.h"

View File

@ -421,23 +421,22 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
E_Menu_Item *mi;
Evas_List *l, *borders = NULL;
E_Menu *root;
E_Zone *zone;
e_menu_pre_activate_callback_set(m, NULL, NULL);
root = e_menu_root_get(m);
/* get the current containers clients */
if ((root) && (root->zone))
/* get the current clients */
if (root)
zone = root->zone;
for (l = e_border_clients_get(); l; l = l->next)
{
for (l = e_zone_clients_list_get(root->zone); l; l = l->next)
borders = evas_list_append(borders, l->data);
E_Border *border;
border = l->data;
if ((border->zone == zone) || (border->iconic))
borders = evas_list_append(borders, border);
}
/* get the iconified clients from other containers */
for (l = e_iconify_clients_list_get(); l; l = l->next)
{
if (!evas_list_find(borders, l->data))
borders = evas_list_append(borders, l->data);
}
if (!borders)
{
/* FIXME here we want nothing, but that crashes!!! */

View File

@ -271,15 +271,6 @@ main(int argc, char **argv)
}
_e_main_shutdown_push(e_module_shutdown);
/* setup iconification */
if (!e_iconify_init())
{
e_error_message_show("Enlightenment cannot setup its iconify system.");
_e_main_shutdown(-1);
}
else
_e_main_shutdown_push(e_iconify_shutdown);
if (!nowelcome)
{
/* explicitly show a gui dialog */

View File

@ -209,15 +209,6 @@ e_zone_bg_reconfigure(E_Zone *zone)
evas_object_show(o);
}
Evas_List *
e_zone_clients_list_get(E_Zone *zone)
{
E_OBJECT_CHECK_RETURN(zone, NULL);
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL);
return zone->clients;
}
static void
_e_zone_free(E_Zone *zone)
{
@ -315,7 +306,7 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count)
E_Desk **new_desks;
E_Desk *desk, *new_desk;
int x, y, xx, yy, moved;
Evas_List *client;
Evas_List *l;
E_Border *bd;
E_Event_Zone_Desk_Count_Set *ev;
@ -332,7 +323,7 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count)
for(y = 0; y < yy; y++)
{
if (x < zone->desk_x_count && y < zone->desk_y_count)
desk = (E_Desk *) zone->desks[x + (y * zone->desk_x_count)];
desk = zone->desks[x + (y * zone->desk_x_count)];
else
desk = e_desk_new(zone, x, y);
new_desks[x + (y * xx)] = desk;
@ -342,20 +333,16 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count)
if (xx < zone->desk_x_count)
for (y = 0; y < zone->desk_y_count; y++)
{
new_desk = (E_Desk *)
zone->desks[xx - 1 + (y * zone->desk_x_count)];
new_desk = zone->desks[xx - 1 + (y * zone->desk_x_count)];
for (x = xx; x < zone->desk_x_count; x++)
{
desk = (E_Desk *)
zone->desks[x + (y * zone->desk_x_count)];
desk = zone->desks[x + (y * zone->desk_x_count)];
/* Here desk->clients is removed from the list on desk_set
* so we want to iterate whilst it is not NULL */
while (desk->clients)
for (l = zone->container->clients; l; l = l->next)
{
bd = (E_Border *) desk->clients->data;
e_border_desk_set(bd, new_desk);
bd = l->data;
if (bd->desk == desk)
e_border_desk_set(bd, new_desk);
}
e_object_del(E_OBJECT(desk));
}
@ -363,19 +350,16 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count)
if (yy < zone->desk_y_count)
for (x = 0; x < zone->desk_x_count; x++)
{
new_desk = (E_Desk *)
zone->desks[x + ((yy - 1) * zone->desk_x_count)];
new_desk = zone->desks[x + ((yy - 1) * zone->desk_x_count)];
for (y = yy; y < zone->desk_y_count; y++)
{
desk = (E_Desk *)
zone->desks[x + (y * zone->desk_x_count)];
desk = zone->desks[x + (y * zone->desk_x_count)];
/* again, list shrinking as we iterate */
while (desk->clients)
for (l = zone->container->clients; l; l = l->next)
{
bd = (E_Border *) desk->clients->data;
e_border_desk_set(bd, new_desk);
bd = l->data;
if (bd->desk == desk)
e_border_desk_set(bd, new_desk);
}
e_object_del(E_OBJECT(desk));
}

View File

@ -31,8 +31,6 @@ struct _E_Zone
int desk_x_count, desk_y_count;
int desk_x_current, desk_y_current;
E_Desk **desks;
Evas_List *clients;
};
struct _E_Event_Zone_Desk_Count_Set
@ -48,7 +46,6 @@ EAPI void e_zone_resize(E_Zone *zone, int w, int h);
EAPI void e_zone_move_resize(E_Zone *zone, int x, int y, int w, int h);
EAPI E_Zone *e_zone_current_get(E_Container *con);
EAPI void e_zone_bg_reconfigure(E_Zone *zone);
EAPI Evas_List *e_zone_clients_list_get(E_Zone *zone);
EAPI void e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count);
EAPI void e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count);