forked from enlightenment/enlightenment
parent
3dbd6d1566
commit
32ff7420ac
5
TODO
5
TODO
|
@ -8,6 +8,11 @@ Some of the things (in very short form) that need to be done to E17...
|
||||||
BUGS / FIXES
|
BUGS / FIXES
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
* screen res change with shaded windows that are bigger than the screen (eg
|
||||||
|
you go from 1600x1200 ro 800x600 and some windows are "temporarily resized"
|
||||||
|
down doesn't work right. shaded windows get resizes to widthx1 and unshaded
|
||||||
|
windows that u then shade and unshade seem to resize win but not border and
|
||||||
|
thus get garbage).
|
||||||
* shelf autohide uses mouse in/out events for the shelf object. this is not all
|
* shelf autohide uses mouse in/out events for the shelf object. this is not all
|
||||||
good as it conflicts with edge flip for desktops (if shelves slide off the
|
good as it conflicts with edge flip for desktops (if shelves slide off the
|
||||||
screen) also it doesn't account for window placement and sizing when the
|
screen) also it doesn't account for window placement and sizing when the
|
||||||
|
|
|
@ -57,6 +57,7 @@ struct _E_Fm2_Smart_Data
|
||||||
} icon_menu;
|
} icon_menu;
|
||||||
|
|
||||||
Evas_List *icons;
|
Evas_List *icons;
|
||||||
|
Evas_List *icons_place;
|
||||||
Evas_List *queue;
|
Evas_List *queue;
|
||||||
Ecore_Timer *scan_timer;
|
Ecore_Timer *scan_timer;
|
||||||
Ecore_Timer *sort_idler;
|
Ecore_Timer *sort_idler;
|
||||||
|
@ -2064,6 +2065,7 @@ _e_fm2_file_add(Evas_Object *obj, const char *file, int unique, const char *file
|
||||||
{
|
{
|
||||||
sd->icons = evas_list_append(sd->icons, ic);
|
sd->icons = evas_list_append(sd->icons, ic);
|
||||||
}
|
}
|
||||||
|
sd->icons_place = evas_list_append(sd->icons_place, ic);
|
||||||
}
|
}
|
||||||
sd->tmp.last_insert = NULL;
|
sd->tmp.last_insert = NULL;
|
||||||
sd->iconlist_changed = 1;
|
sd->iconlist_changed = 1;
|
||||||
|
@ -2085,6 +2087,7 @@ _e_fm2_file_del(Evas_Object *obj, const char *file)
|
||||||
if (!strcmp(ic->info.file, file))
|
if (!strcmp(ic->info.file, file))
|
||||||
{
|
{
|
||||||
sd->icons = evas_list_remove_list(sd->icons, l);
|
sd->icons = evas_list_remove_list(sd->icons, l);
|
||||||
|
sd->icons_place = evas_list_remove(sd->icons_place, ic);
|
||||||
if (ic->region)
|
if (ic->region)
|
||||||
{
|
{
|
||||||
ic->region->list = evas_list_remove(ic->region->list, ic);
|
ic->region->list = evas_list_remove(ic->region->list, ic);
|
||||||
|
@ -2195,6 +2198,7 @@ _e_fm2_queue_process(Evas_Object *obj)
|
||||||
sd->icons = evas_list_append(sd->icons, ic);
|
sd->icons = evas_list_append(sd->icons, ic);
|
||||||
sd->tmp.last_insert = evas_list_last(sd->icons);
|
sd->tmp.last_insert = evas_list_last(sd->icons);
|
||||||
}
|
}
|
||||||
|
sd->icons_place = evas_list_append(sd->icons_place, ic);
|
||||||
added++;
|
added++;
|
||||||
/* if we spent more than 1/20th of a second inserting - give up
|
/* if we spent more than 1/20th of a second inserting - give up
|
||||||
* for now */
|
* for now */
|
||||||
|
@ -2377,6 +2381,7 @@ _e_fm2_icons_icon_overlaps(E_Fm2_Icon *ic)
|
||||||
Evas_List *l;
|
Evas_List *l;
|
||||||
E_Fm2_Icon *ic2;
|
E_Fm2_Icon *ic2;
|
||||||
|
|
||||||
|
/* this is really slow... when we have a lot of icons */
|
||||||
for (l = ic->sd->icons; l; l = l->next)
|
for (l = ic->sd->icons; l; l = l->next)
|
||||||
{
|
{
|
||||||
ic2 = l->data;
|
ic2 = l->data;
|
||||||
|
@ -2419,50 +2424,79 @@ _e_fm2_icon_place_relative(E_Fm2_Icon *ic, E_Fm2_Icon *icr, int xrel, int yrel,
|
||||||
static void
|
static void
|
||||||
_e_fm2_icons_place_icon(E_Fm2_Icon *ic)
|
_e_fm2_icons_place_icon(E_Fm2_Icon *ic)
|
||||||
{
|
{
|
||||||
Evas_List *l;
|
Evas_List *l, *pl;
|
||||||
E_Fm2_Icon *ic2;
|
E_Fm2_Icon *ic2;
|
||||||
|
|
||||||
ic->x = 0;
|
ic->x = 0;
|
||||||
ic->y = 0;
|
ic->y = 0;
|
||||||
ic->saved_pos = 1;
|
ic->saved_pos = 1;
|
||||||
if (!_e_fm2_icons_icon_overlaps(ic)) return;
|
/* ### BLAH ### */
|
||||||
|
// if (!_e_fm2_icons_icon_overlaps(ic)) return;
|
||||||
|
/*
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 1, 0, 0, 2);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 0, -1, 0, 0);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 0, -1, 1, 0);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 1, 0, 0, 0);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 1, 0, 0, 1);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 0, 1, 0, 0);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 0, 1, 1, 0);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
||||||
|
*/
|
||||||
|
printf("PLACE %s\n", ic->info.file);
|
||||||
|
// for (l = ic->sd->icons_place; l; l = l->next)
|
||||||
for (l = ic->sd->icons; l; l = l->next)
|
for (l = ic->sd->icons; l; l = l->next)
|
||||||
{
|
{
|
||||||
ic2 = l->data;
|
ic2 = l->data;
|
||||||
|
|
||||||
if (ic2->saved_pos)
|
if ((ic2 != ic) && (ic2->saved_pos))
|
||||||
{
|
{
|
||||||
int x, y;
|
|
||||||
|
|
||||||
// ###_
|
// ###_
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 1, 0, 0, 2); if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
|
||||||
// ###
|
|
||||||
// |
|
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 0, 1, 1, 0); if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
|
||||||
// ###
|
|
||||||
// |
|
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 0, 1, 0, 0); if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
|
||||||
// ###
|
|
||||||
// |
|
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 0, 1, 2, 0); if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
|
||||||
/*
|
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 1, 0, 0, 2);
|
_e_fm2_icon_place_relative(ic, ic2, 1, 0, 0, 2);
|
||||||
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
if (_e_fm2_icons_icon_row_ok(ic) &&
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 0, -1, 0, 0);
|
!_e_fm2_icons_icon_overlaps(ic)) goto done;
|
||||||
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
// _###
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 0, -1, 1, 0);
|
_e_fm2_icon_place_relative(ic, ic2, -1, 0, 0, 2);
|
||||||
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
if (_e_fm2_icons_icon_row_ok(ic) &&
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 1, 0, 0, 0);
|
!_e_fm2_icons_icon_overlaps(ic)) goto done;
|
||||||
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 1, 0, 0, 1);
|
|
||||||
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 0, 1, 0, 0);
|
|
||||||
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
|
||||||
_e_fm2_icon_place_relative(ic, ic2, 0, 1, 1, 0);
|
|
||||||
if (_e_fm2_icons_icon_row_ok(ic) && !_e_fm2_icons_icon_overlaps(ic)) return;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for (l = ic->sd->icons_place; l;)
|
||||||
|
for (l = ic->sd->icons; l;)
|
||||||
|
{
|
||||||
|
ic2 = l->data;
|
||||||
|
|
||||||
|
if ((ic2 != ic) && (ic2->saved_pos))
|
||||||
|
{
|
||||||
|
// ###
|
||||||
|
// |
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 0, 1, 1, 0);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) &&
|
||||||
|
!_e_fm2_icons_icon_overlaps(ic)) goto done;
|
||||||
|
// |
|
||||||
|
// ###
|
||||||
|
_e_fm2_icon_place_relative(ic, ic2, 0, -1, 1, 0);
|
||||||
|
if (_e_fm2_icons_icon_row_ok(ic) &&
|
||||||
|
!_e_fm2_icons_icon_overlaps(ic)) goto done;
|
||||||
|
}
|
||||||
|
pl = l;
|
||||||
|
l = l->next;
|
||||||
|
if ((ic2 != ic) && (ic2->saved_pos))
|
||||||
|
{
|
||||||
|
// printf("REMOVE %p [%s]\n",
|
||||||
|
// pl->data, ((E_Fm2_Icon *)pl->data)->info.file);
|
||||||
|
// ic->sd->icons_place = evas_list_remove_list(ic->sd->icons_place, pl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
done:
|
||||||
|
printf("PLACED at %i %i\n", ic->x, ic->y);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2612,6 +2646,8 @@ _e_fm2_icons_free(Evas_Object *obj)
|
||||||
_e_fm2_icon_free(sd->icons->data);
|
_e_fm2_icon_free(sd->icons->data);
|
||||||
sd->icons = evas_list_remove_list(sd->icons, sd->icons);
|
sd->icons = evas_list_remove_list(sd->icons, sd->icons);
|
||||||
}
|
}
|
||||||
|
evas_list_free(sd->icons_place);
|
||||||
|
sd->icons_place = NULL;
|
||||||
sd->tmp.last_insert = NULL;
|
sd->tmp.last_insert = NULL;
|
||||||
E_FREE(sd->tmp.list_index);
|
E_FREE(sd->tmp.list_index);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue