From 6ca778ea552856ba6a329f70deb55cf753034817 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 9 Apr 2005 00:13:09 +0000 Subject: [PATCH] i've gone over vd's - read the diff :) SVN revision: 14123 --- TODO | 9 +++-- src/bin/e_desk.c | 69 ++++++++++++----------------------- src/bin/e_desk.h | 2 +- src/bin/e_zone.c | 94 ++++++++++++++++++++++++------------------------ 4 files changed, 76 insertions(+), 98 deletions(-) diff --git a/TODO b/TODO index eebe403e4..57063be93 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,6 @@ -\MINI FREEZE: +MINI FREEZE: -Status: ON +Status: OFF What is this: @@ -29,9 +29,7 @@ Current freeze issues are: ISSUES: -* virtual desktops need an overhaul. hacked in waay too quickly. -* virtual desktops need fixing to work with zones properly -* gadman gadget menu needs icons :) + @@ -57,6 +55,7 @@ Also look at all the .c files - they have their own localized TODO lists These are in no particular order: +* gadman gadget menu needs icons :) * module api needs to change entry calls, move label and icon to data file, not api * gadman edit mode for simgple gadgets with a key combo (eg alt+click on module) * edit mode keybindings :) diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 3e2526890..9bf2a23fb 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -11,17 +11,12 @@ static void _e_desk_free(E_Desk *desk); static void _e_border_event_desk_show_free(void *data, void *ev); -static int desk_count; - int E_EVENT_DESK_SHOW = 0; int e_desk_init(void) { - desk_count = 0; - E_EVENT_DESK_SHOW = ecore_event_type_new(); - return 1; } @@ -44,7 +39,8 @@ e_desk_new(E_Zone *zone, int x, int y) if (!desk) return NULL; desk->zone = zone; - desk->num = ++desk_count; + desk->x = x; + desk->y = y; snprintf(name, sizeof(name), "Desktop %d, %d", x, y); desk->name = strdup(name); return desk; @@ -62,8 +58,8 @@ e_desk_name_set(E_Desk *desk, const char *name) void e_desk_show(E_Desk *desk) { - Evas_List *l; - int x, y; + Evas_List *l; + int x, y; E_Event_Desk_Show *ev; E_OBJECT_CHECK(desk); @@ -76,14 +72,10 @@ e_desk_show(E_Desk *desk) if (bd->desk->zone == desk->zone && !bd->iconic) { - if (bd->desk == desk || bd->sticky) - { - e_border_show(bd); - } + if ((bd->desk == desk) || (bd->sticky)) + e_border_show(bd); else - { - e_border_hide(bd, 1); - } + e_border_hide(bd, 1); } } @@ -91,10 +83,11 @@ e_desk_show(E_Desk *desk) { for (y = 0; y < desk->zone->desk_y_count; y++) { - E_Desk *next; - next = e_desk_at_xy_get(desk->zone,x, y); - next->visible = 0; - if (next == desk) + E_Desk *desk2; + + desk2 = e_desk_at_xy_get(desk->zone,x, y); + desk2->visible = 0; + if (desk2 == desk) { desk->zone->desk_x_current = x; desk->zone->desk_y_current = y; @@ -138,7 +131,6 @@ e_desk_current_get(E_Zone *zone) { E_OBJECT_CHECK_RETURN(zone, NULL); E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL); - return e_desk_at_xy_get(zone, zone->desk_x_current, zone->desk_y_current); } @@ -151,7 +143,7 @@ e_desk_at_xy_get(E_Zone *zone, int x, int y) if ((x >= zone->desk_x_count) || (y >= zone->desk_y_count)) return NULL; - return (E_Desk *) zone->desks[x + (y * zone->desk_x_count)]; + return (E_Desk *)zone->desks[x + (y * zone->desk_x_count)]; } void @@ -162,21 +154,8 @@ e_desk_xy_get(E_Desk *desk, int *x, int *y) E_OBJECT_CHECK(desk); E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); - for (xx = 0; xx < desk->zone->desk_x_count; xx++) - { - for (yy = 0; yy < desk->zone->desk_y_count; yy++) - { - E_Desk *next; - next = e_desk_at_xy_get(desk->zone, xx, yy); - - if (next == desk) - { - *x = xx; - *y = yy; - return; - } - } - } + if (x) *x = desk->x; + if (y) *y = desk->y; } void @@ -187,19 +166,19 @@ e_desk_next(E_Zone *zone) E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); - if (zone->desk_x_count < 2 && zone->desk_y_count < 2) - return; + if ((zone->desk_x_count < 2) && + (zone->desk_y_count < 2)) + return; x = zone->desk_x_current; y = zone->desk_y_current; - + x++; if (x >= zone->desk_x_count) { x = 0; y++; - if (y >= zone->desk_y_count) - y = 0; + if (y >= zone->desk_y_count) y = 0; } e_desk_show(e_desk_at_xy_get(zone, x, y)); @@ -213,7 +192,8 @@ e_desk_prev(E_Zone *zone) E_OBJECT_CHECK(zone); E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); - if (zone->desk_x_count < 2 && zone->desk_y_count < 2) + if ((zone->desk_x_count < 2) && + (zone->desk_y_count < 2)) return; x = zone->desk_x_current; @@ -224,11 +204,8 @@ e_desk_prev(E_Zone *zone) { x = zone->desk_x_count - 1; y--; - if (y < 0) - y = zone->desk_y_count - 1; - + if (y < 0) y = zone->desk_y_count - 1; } - e_desk_show(e_desk_at_xy_get(zone, x, y)); } diff --git a/src/bin/e_desk.h b/src/bin/e_desk.h index a7283b2ff..aab4a438f 100644 --- a/src/bin/e_desk.h +++ b/src/bin/e_desk.h @@ -18,7 +18,7 @@ struct _E_Desk E_Zone *zone; char *name; - int num; + int x, y; char visible : 1; Evas_Object *bg_object; diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 764a783f5..ae10dd17e 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -313,60 +313,62 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) E_Event_Zone_Desk_Count_Set *ev; xx = x_count; - if (xx < 1) - xx = 1; + if (xx < 1) xx = 1; yy = y_count; - if (yy < 1) - yy = 1; + if (yy < 1) yy = 1; new_desks = malloc(xx * yy * sizeof(E_Desk *)); - for (x = 0; x < xx; x++) - for(y = 0; y < yy; y++) - { - if (x < zone->desk_x_count && y < zone->desk_y_count) - desk = zone->desks[x + (y * zone->desk_x_count)]; - else - desk = e_desk_new(zone, x, y); - new_desks[x + (y * xx)] = desk; - } + { + for (y = 0; y < yy; y++) + { + if ((x < zone->desk_x_count) && (y < zone->desk_y_count)) + desk = zone->desks[x + (y * zone->desk_x_count)]; + else + desk = e_desk_new(zone, x, y); + new_desks[x + (y * xx)] = desk; + } + } /* catch windoes that have fallen off the end if we got smaller */ if (xx < zone->desk_x_count) - for (y = 0; y < zone->desk_y_count; y++) - { - new_desk = zone->desks[xx - 1 + (y * zone->desk_x_count)]; - for (x = xx; x < zone->desk_x_count; x++) - { - desk = zone->desks[x + (y * zone->desk_x_count)]; - - for (l = zone->container->clients; l; l = l->next) - { - bd = l->data; - if (bd->desk == desk) - e_border_desk_set(bd, new_desk); - } - e_object_del(E_OBJECT(desk)); - } - } + { + for (y = 0; y < zone->desk_y_count; y++) + { + new_desk = zone->desks[xx - 1 + (y * zone->desk_x_count)]; + for (x = xx; x < zone->desk_x_count; x++) + { + desk = zone->desks[x + (y * zone->desk_x_count)]; + + for (l = zone->container->clients; l; l = l->next) + { + bd = l->data; + if (bd->desk == desk) + e_border_desk_set(bd, new_desk); + } + e_object_del(E_OBJECT(desk)); + } + } + } if (yy < zone->desk_y_count) - for (x = 0; x < zone->desk_x_count; x++) - { - new_desk = zone->desks[x + ((yy - 1) * zone->desk_x_count)]; - for (y = yy; y < zone->desk_y_count; y++) - { - desk = zone->desks[x + (y * zone->desk_x_count)]; - - for (l = zone->container->clients; l; l = l->next) - { - bd = l->data; - if (bd->desk == desk) - e_border_desk_set(bd, new_desk); - } - e_object_del(E_OBJECT(desk)); - } - } - + { + for (x = 0; x < zone->desk_x_count; x++) + { + new_desk = zone->desks[x + ((yy - 1) * zone->desk_x_count)]; + for (y = yy; y < zone->desk_y_count; y++) + { + desk = zone->desks[x + (y * zone->desk_x_count)]; + + for (l = zone->container->clients; l; l = l->next) + { + bd = l->data; + if (bd->desk == desk) + e_border_desk_set(bd, new_desk); + } + e_object_del(E_OBJECT(desk)); + } + } + } if (zone->desks) free(zone->desks); zone->desks = new_desks;